Service Registry 3.1 開発ガイド

Service Registry の認証

Service Registry では証明書による認証が使用されるため、Service Registry にデータを送信するには証明書を持っている必要があります。また、レジストリにデータを送信できるユーザーを、Web コンソールのユーザー登録ウィザードを使って作成する必要もあります。詳細については、「Service Registry へのアクセス」を参照してください。

データを送信するには、クライアントはまず、その証明書を一連の「資格」に追加して Service Registry に送信する必要があります。次のコードは、その実行方法を示したものです。資格を取得するには、次の必須の値を指定する必要があります。

通常、これら 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 に定義されています。


注 –

RegistryCredentials.java のメソッドでは、キーストアファイル、キーストアパスワード、ユーザーエイリアス、およびユーザーパスワードの値を表示する行がコメントアウトされています。最初にオブジェクトを発行しようとしたときにエラーが発生した場合は、これらのプロパティーが build.properties ファイルのセキュリティー設定を編集するには」に説明されているとおり正しく設定されるように、これらの行からコメント文字を削除します。