3.15 サンプルプログラム(10) - ベリサイン証明書を埋め込む設定
概要
このサンプルプログラムでは、ベリサイン証明書を埋め込む設定を行います。
サンプル構成
| 項目 | ファイルパス |
|---|---|
| ページレイアウトサンプル |
<biz-Stream_home>/sample/xml/verisign-signature/verisign-signatureSample1.xml
|
| ソースサンプル |
<biz-Stream_home>/sample/java/Sample10.java
|
| 出力結果サンプル |
<biz-Stream_home>/sample/java/Sample10.pdf
|
ソースサンプル
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
