高度なカスタマイズ > Info*Engine ユーザーガイド > Web サービスフレームワーク > Java ベースの Web サービスクライアントの作成 > ポータブル Web サービスクライアント > セキュリティポリシーの使用
  
セキュリティポリシーの使用
サポートされているセキュリティポリシー (Web サーバー認証以外) のいずれかで Web サービスのセキュリティを確保する場合、Java クライアントが独自のキーストアとトラストストアにアクセスできる必要があります。これらのファイル (キーストアとトラストストア) へのパスは、以下の場所にあるビルドフレームワークによって使用されるように設定されています。
<Windchill>/bin/adminTools/WebServices/client/security.properties
キーストアとトラストストアへのパスは絶対パスであり、META-INF ディレクトリ内でクライアント JAR ファイルとパッケージ化された展開記述子にコンパイルされる必要があります。
Windchill が標準のコンフィギュレーションで実行されているホストから Web サービスクライアントをコンパイルすると、これらのファイルはクライアントでは使用できますが、サーバーでは使用できません。Web サービスクライアントを別のホストに再配布する前に、次のいずれかの操作を実行する必要があります。
これらのファイルが新規クライアントに配置される際の場所のパスを含むように、client/security.properties ファイルを更新 (または、このファイルのコピーを src_client ディレクトリに作成して更新) し、クライアントを再構築します。
クライアントを実行する各ホストで、クライアントの JAR ファイルを再設定します。詳細については、クライアント JAR ファイルの再設定を参照してください。
クライアントを実行する予定の各ホストで、ホストごとに適切なパスを指定したクライアントのコピーをコンパイルします。詳細については、ホストごとにクライアントのコピーをコンパイルするを参照してください。
クライアント JAR ファイルの再設定
クライアントをコンパイルし、パッケージ化したら、プロジェクトの dist_client ディレクトリに、コンパイルされたクライアントを含んでいる JAR ファイルと webservices-support.jar ファイルの 2 つの JAR ファイルが生成されます。この JAR ファイルは実行可能で、クライアントを再設定するために次のように使用することができます。
% java -jar webservices-support.jar
-clientJar <JAR ファイル> [-targetJar <JAR ファイル>] [-securityProperties
<プロパティファイル>] [-wsdl <サービス WSDL>]
-targetJar が指定されていない場合は、-clientJar が上書きされます。-wsdl-securityProperties の両方またはいずれかを指定する必要もあります。
トラストストアとキーストアのロケーションへのパスを再設定するには、security.properties ファイルをクライアントホストにコピーし、-securityProperties 引数を使用してユーティリティを実行します。これは、Web サービスのデフォルトの URL を再設定するためにも使用できます。別の方法として、システムプロパティを使用して Web サービスの URL を指定することも、独自の JAX-WS ハンドラを作成して URL を指定することもできます。
* 
プロパティファイル内のトラストストアおよびキーストアのロケーションへのファイルパスは絶対パスで指定する必要があり、ほかのプロパティの参照を含めることはできません。
この方法でクライアント JAR を再設定する場合は、クライアントが使用するコールバックハンドラに関する追加情報も指定する必要があります。この情報を指定しない場合、通常コールバックハンドラによって提供される情報がプログラムによって指定されるまで、再設定したクライアントは機能できません。特に、これにはユーザーの資格情報の収集や、JAX-WS ハンドラチェーンを通した一般的な処理の実行に必要なクラスが含まれます。
設定可能なその他のプロパティを次に示します。
handler.config
handler.chain.authentication
handler.chain.extras
handler.chain.url
handler.chain.authentication
* 
これらのプロパティの説明については、ant usage コマンドを src_client プロジェクトディレクトリ内で実行してください。
既存のクライアント JAR の場合、コンフィギュレーションは security.properties ファイルで指定されます。構築時に、このコンフィギュレーションは通常 src_client/build.xml Ant スクリプト内で検索されます。
トラストストアとキーストアのパスだけを再設定している場合は、src_client/build.xml スクリプトで handler.config プロパティの値を確認する必要があります。クライアント JAR を再設定するときに、security.properties ファイルでこのプロパティを指定します。
Web サービスのセキュリティポリシーが変更されたためにクライアント JAR を再設定する場合は、クライアントのハンドラコンフィギュレーションの変更が必要となる場合があります。例:
#web service security.policy=userNameAuthSymmetricKeys
handler.config=usernameHandler:com.ptc.jws.client.handler.
UsernamePasswordCallbackHandler,passwordHandler:com.ptc.jws.client.handler.
UsernamePasswordCallbackHandler
#web service security.policy=samlsv
handler.config=samlHandler:com.ptc.jws.client.handler.SamlCallbackHandler
* 
これらのプロパティは、com.ptc.jws.client.handler パッケージに加えて指定します。
Web サーバー認証 (security.policy=webServerAuthenticated) で保護された Web サービスに対してクライアントを再設定する場合は、コマンドを実行するときにシステムプロパティの requires.authentication=true を指定する必要があります。独自の JAX-WS ハンドラチェーンコンフィギュレーションを指定する場合は、security.properties ファイルのみ必要です。例:
% java -D requires.authentication=true -clientJar <client jar> -wsdl <service wsdl>
この場合は、handler.chain.authentication のデフォルト値が自動的に使用されます。
ホストごとにクライアントのコピーをコンパイルする
また、クライアントが実行される予定のすべてのホストにそれぞれ対応するように、特定のホストへの適切なパスが含まれているクライアントのコピーをコンパイルすることもできます。
例:
% cd <Windchill>/prog_examples/jws/MathService/src_client
% cp <Windchill>/bin/adminTools/WebServices/client/security.properties .
必要に応じて、クライアントごとに security.properties のローカルコピーを更新します。これにより、これらのセキュリティプロパティが <Windchill>/bin/adminTools/WebServices/ client/security.properties 内にある共通のプロパティよりも優先されます。