biz-Streamマニュアル PDF出力ガイド 第3章 サンプルプログラム 3.15 サンプルプログラム(10) - ベリサイン証明書を埋め込む設定

3.15 サンプルプログラム(10) - ベリサイン証明書を埋め込む設定

概要

このサンプルプログラムでは、ベリサイン証明書を埋め込む設定を行います。


サンプル構成

項目 ファイルパス
ページレイアウトサンプル <biz-Stream_home>/sample/xml/verisign-signature/verisign-signatureSample1.xml サンプル1
ソースサンプル <biz-Stream_home>/sample/java/Sample10.java サンプル1
出力結果サンプル <biz-Stream_home>/sample/java/Sample10.pdf サンプル1


ソースサンプル


import com.brainsellers.xml.JaxpXML;
import com.brainsellers.xml.common.XMLSuper;
import com.brainsellers.xml.document.signature.VeriSignSignature;

/**
 * 証明書ファイルはサンプルには含まれておりません
 * ベリサインのサイトにて各種申請手続きのうえ、入手してください
 */
public class Sample10 {

    public static void main(String args[]) {
        new Sample10(args);
        System.exit(0);
    }

    public Sample10(String args[]) {
        try {
            // (1) 入出力共にファイル名で指定する
            XMLSuper xml = new JaxpXML(
                    "${base-dir}/sample/xml/verisign-signature/verisign-signatureSample1.xml",
                    "${base-dir}/sample/java/Sample10.pdf");

            // (2) レイアウト情報(XML)の解析を行う
            xml.parse();

            // (3) 証明書を埋め込む
            setSignature1(xml);

            // (4) 座標計算を行う
            xml.calcDataSize();

            // (5) PDFを生成する
            xml.toPDF();

            // (6) PDFを出力する
            xml.close();
        } catch (java.io.FileNotFoundException e) {
            e.printStackTrace();
        } catch (java.io.IOException e) {
            e.printStackTrace();
        } catch (java.lang.Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 証明書を埋め込む
     *
     * @param xml
     *            XMLエンジン
     *
     *            ご使用される PKCS#12 ファイルの状態により、以下のいずれかのメソッドを使用してください。
     *
     *            (1) 中間CA証明書を含む PKCS#12 を使用する場合
     *            setSignature(password, issuer_pkcs12, issuer_x509);
     *
     *            (2) PKCS#12に中間CA証明書を含まず、別途中間CA証明書ファイルを指定する場合
     *            setSignature(password, issuer_pkcs12, issuer_x509, verisign_x509);
     *
     */
    // (1) 中間CA証明書を含む PKCS#12 を使用する場合
    private void setSignature1(XMLSuper xml) {
        String cert_path = "./";
        // パスワードを指定
        String password = "password";
        // プライベート・キーのあるPKCS#12フォーマットのファイル名
        String issuer_pkcs12 = cert_path + "vbrainsellers.pfx";
        // X509フォーマットの署名者の証明書のファイル名
        String issuer_x509 = cert_path + "vbrainsellers.cer";
        // name属性で指定された名前を元にオブジェクトを取得する
        VeriSignSignature vss = (VeriSignSignature) xml.getObject("veri3");
        if (vss != null && vss instanceof VeriSignSignature) {
            vss.setSignature(password, issuer_pkcs12, issuer_x509);
        }
    }

    // (2)PKCS#12に中間CA証明書を含まず、別途中間CA証明書ファイルを指定する場合
    private void setSignature2(XMLSuper xml) {
        String cert_path = "./";
        // パスワードを指定
        String password = "password";
        // プライベート・キーのあるPKCS#12フォーマットのファイル名
        String issuer_pkcs12 = cert_path + "vbrainsellers.pfx";
        // X509フォーマットの署名者の証明書のファイル名
        String issuer_x509 = cert_path + "vbrainsellers.cer";
        // X509フォーマットの中間CA証明書およびルート証明書のファイル名の配列
        // 複数指定が可能です。必要なだけ指定してください
        String verisign_x509[] = {
                cert_path + "intermediate.cer", // 中間CA証明書
                cert_path + "cross_root.cer", // クロスルート中間証明書
                cert_path + "root.cer" // ルート証明書
                };
        // name 属性で指定された名前を元にオブジェクトを取得する
        VeriSignSignature vss = (VeriSignSignature) xml.getObject("veri3");
        if (vss != null && vss instanceof VeriSignSignature) {
            vss.setSignature(password, issuer_pkcs12, issuer_x509, verisign_x509);
        }
    }
}

生成するPDF

サンプル9-1