hello_world_httpsサンプルを試す
シナリオ3 セキュリティを施したJavaクラス
シナリオ2のセキュリティ上の問題を解決するのがシナリオ3です。
シナリオ3では「celtix.p12」で証明されたパスワードを安全に参照するため、セキュリティを施したjavaクラスを使います(注2)。このリリースでは、メソッドを実装したjavaクラスを書くことで、セキュリティ構成を作成します。
クライアント用のクラス
public void configure(SSLClientPolicy sslPolicyParam)
サーバ用のクラス
public void configure(SSLServerPolicy sslPolicyParam)
クラスを作成したら、作成したクラスをポイントするためにJavaのシステムプロパティを指定します。システムプロパティの名前は、「celtix.security.configurer.」とbean idの文字列の組み合わせで構成されています。
例えば、典型的なクライアント側のシステムプロパティは、次のようなidとなります。
celtix.security.configurer.celtix.{http://objectweb.org/hello_world_soap_http}
SOAPService/StrictSecurePort.http-client
さらに、サーバ側のシステムプロパティは次のようになります。
celtix.security.configurer.celtix.http-listener.9001
適切なプロパティを指定しておくことで「Client.java」と「Server.java」から利用できるようになります。なおbean idに関する詳細な情報は、Celtixコンフィグレーションガイドを参照してください。
プロパティの値は「public void configure(SSLClientPolicy sslPolicyParam)」で実装されたJavaクラスか、「public void configure(SSLServerPolicy sslPolicyParam)」メソッドで有効となります。
Celtixはクラスをロードする際にリフレクションを利用し、クライアント側とサーバ側のポリシーのインスタンスを有効とします。このときポリ シーの中の日付の一部(またはすべて)をコードに組み込みます。詳細については「security.xsd」ファイルで定義された、 SSLClientPolicyとSSLServerPolicyの構造体を参照してください。
このデモで「demo.hw_https.common.DemoSecurityConfigurer」クラスはダイヤログボックスを使って 「celtix.p12」証明書のパスワードを参照します。このため、新たにコンフィグレーションを行う必要はありません。
起動するには
UNIXとWindows共にサーバおよびクライアントを起動します。
ant server -Dsecurity_mode=strict_server ant client -Duser=strict_secure_user
パスワード入力を促すダイヤログボックスが表示されるので「celtixpass」と入力します。クライアントからサーバへの呼び出しが成功します。