公開されているすべてのレジストリAPIでは、デフォルトでUDDI認証スキームが使用されます。UDDI認証スキームでは、リモート・ユーザーを識別するためにすべてのコールで認証トークンが渡されます。 これについてはPublishing v3などのレジストリのデモを参照してください。 UDDI認証スキームは置き換えることができます。
この項では、HTTP Basic認証またはSSLクライアント認証を使用する新しいビジネス・エンティティを公開するクライアント例について説明します。
わかりやすくするために、クライアント例ではOracle Service Registryに付属するSOAPスタックを使用しています。 選択したSOAPスタックを使用して、レジストリと通信できます。
例3 ExampleClient.java
// (c) Copyright 2001-2008 Hewlett-Packard Development Company, L.P. // Use is subject to license terms. import org.systinet.uddi.client.v3.UDDIPublishStub; import org.systinet.uddi.client.v3.UDDI_Publication_PortType; import org.systinet.uddi.client.v3.struct.*; public class ExampleClient { public static void main(String[] args) { String registryBaseUrl = System.getProperty("registry.base.url","http://localhost:8080"); String urlPublishing = registryBaseUrl+ "/uddi/publishing"; System.out.print("Using publishing URL "+urlPublishing + " ."); try { UDDI_Publication_PortType publish = UDDIPublishStub.getInstance(urlPublishing); System.out.println(publish.save_business(new Save_business (new BusinessEntityArrayList(new BusinessEntity(new NameArrayList (new Name("Created by Client Authentication Example"))))))); System.out.println(" done"); } catch (Exception e) { e.printStackTrace(); } } }
クライアントを作成するには、次の手順を実行します。
CLIENT_HOMEディレクトリを作成します。
CLIENT_HOMEディレクトリにクライアント・クラスを作成します。 クライアント例は、例3を参照してください。 クライアントには、セキュリティ・コールや構造は含まれていません。 クライアント側のセキュリティは、クライアントを実行するjavaコマンドに指定されるプロパティを使用して後から構成します。
CLIENT_HOMEに、libサブディレクトリを作成します。 コンパイルとクライアントの実行に必要なjarファイルをこのディレクトリにコピーします。 jarファイルはすべてOracle Service Registryのインストール・ディレクトリに格納されています。 次にそのjarファイルを示します。
lib/activation.jar
lib/builtin_serialization.jar
lib/core_services_client.jar
lib/jaxm.jar
lib/jaxrpc.jar
lib/jetty.jar
lib/log4j.jar
lib/saaj.jar
lib/security-ng.jar
lib/security2-ng.jar
lib/security_providers_client.jar
lib/wasp.jar
lib/wsdl_api.jar
lib/xalan.jar
lib/xercesImpl.jar
lib/xml-apis.jar
dist/uddiclient_core.jar
dist/uddiclient_api_ v3.jar
CLIENT_HOMEに、confサブディレクトリを作成します。 クライアントの実行に必要な構成ファイルをこのディレクトリにコピーします。 これらのファイルもOracle Service Registryのインストール・ディレクトリに格納されています。
conf/clientconf.xml
conf/package12.xml
conf/package13.xml
conf/jaas.config
CLIENT_HOMEのlibサブディレクトリのすべてのjarファイルを含むCLASSPATHを使用してクライアント例のクラスをコンパイルします。
クライアントを実行する前に、レジストリを「HTTP Basic」または「埋込みHTTP/HTTPSサーバーを使用したSSLクライアント認証」で説明したいずれかの認証スキームに構成します。 SSLクライアント認証用にデプロイしたレジストリを構成する場合は、「J2EEサーバー認証」で説明した手順を実行します。
クライアントを実行するには、次の手順を実行します。
CLIENT_HOME/libにあるすべてのjarファイルおよびコンパイル済のクラス例が格納されているディレクトリを含むCLASSPATHを使用します。
次のプロパティ定義をjavaコマンドラインに追加します。
-Dwasp.location=CLIENT_HOME
-Djava.security.auth.login.config=CLIENT_HOME/conf/jaas.config
HTTP Basic認証を使用してクライアントを実行するには、次のコマンドライン・オプションを追加します。
-Dwasp.username=USERNAME
-Dwasp.password=PASSWORD
-Dwasp.securityMechanism=HttpBasic
-Dregistry.base.url=http://HOST:PORT/CONTEXT
USERNAMEおよびPASSWORDのかわりに登録済ユーザーの資格証明を使用します。 新しいユーザーを登録するには、レジストリ・コンソールのメイン・ページから開始します。 詳細は、「レジストリ・コンソール」を参照してください。 インストール時にデモ・データをインポートした場合は、デモ・ユーザーdemo_john(パスワード: demo_john)を使用することもできます。
レジストリのベースURLは、例3に示されているように、registry.base.urlプロパティを使用して指定します。 レジストリのデプロイメントと一致するように、HOST、PORTおよびCONTEXTを置き換えます。たとえば、http://pc1.example.com:8080のようにします。
SSLクライアント認証を使用してクライアントを実行するには、次のコマンドライン・オプションを追加します。
-Dwasp.username=USERNAME
-Dwasp.password=PASSWORD
-Dwasp.securityMechanism=SSL
-Dregistry.base.url=http://HOST:PORT/CONTEXT
HTTP Basic認証と異なり、USERNAMEおよびPASSWORDを使用して、ローカルで保護されているストアからクライアントIDを取得します。 「SSLツール」に示されている手順を使用してクライアントIDをインポートする必要があります。 クライアント例の保護されているストアは、CLIENT_HOME/conf/clientconf.xmlファイルに記述されています。 「PStoreツール」に示されている手順を使用して、サーバー証明書(またはサーバー証明書を発行した認証局の証明書)を保護されている同じストアにインポートする必要もあります。
USERNAMEのかわりに保護されているストアのエイリアスを使用します。 PASSWORDは、そのエイリアスに格納されている秘密鍵を保護するために使用されるパスワードを表します。
レジストリのベースURLは、例3に示されているように、registry.base.urlシステム・プロパティを使用して指定します。 レジストリのデプロイメントと一致するように、HOST、PORTおよびCONTEXTを置き換えます。たとえば、https://pc1.example.com:8443のようにします。