Service Registry では証明書による認証が使用されるため、Service Registry にデータを送信するには証明書を持っている必要があります。また、レジストリにデータを送信できるユーザーを、Web コンソールのユーザー登録ウィザードを使って作成する必要もあります。詳細については、「Service Registry へのアクセス」を参照してください。
データを送信するには、クライアントはまず、その証明書を一連の「資格」に追加して Service Registry に送信する必要があります。次のコードは、その実行方法を示したものです。資格を取得するには、次の必須の値を指定する必要があります。
キーストアのパス。証明書の鍵の格納先となるファイル (通常は keystore.jks) へのフルパス
キーストアのパスワード。通常は ebxmlrr
ウィザードによる登録時に選択したユーザー名とパスワード
通常、これら 4 つの必須の値はリソースバンドルから取得し、メソッド内にコードの大部分をカプセル化します。
String keystorePath = "myKeystorePath"; String storepass = "myStorepass"; String alias = "myAlias"; String keypass = myKeypass"); Set credentials = new HashSet(); KeyStore keyStore = KeyStore.getInstance("JKS"); keyStore.load(new BufferedInputStream( new FileInputStream(keystorePath)), storepass.toCharArray()); X509Certificate cert = (X509Certificate) keyStore.getCertificate(alias); PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, keypass.toCharArray()); credentials.add(new X500PrivateCredential(cert, privateKey, alias)); connection.setCredentials(credentials);
setCredentials メソッドが成功すると、ユーザーは Service Registry にログインした状態になり、オブジェクトを発行できるようになります。
Service Registry に対して認証するサンプルプログラムはすべて、このコードを含む getCredentialsFromKeystore という名前のメソッドを呼び出しています。このメソッドは、ファイル <INSTALL>/registry/samples/common/src/RegistryCredentials.java に定義されています。