高度なカスタマイズ > Info*Engine ユーザーガイド > Web サービスフレームワーク > Java ベースの Web サービスクライアントの作成 > クライアントのコールバックハンドラ
  
クライアントのコールバックハンドラ
Web サービスを作成したときに、-Dsecurity.policy=usernameAuthSymmetricKeys プロパティが指定されています。これにより、セキュリティポリシーによって明示的に Web サービスのセキュリティを確保するようにフレームワークに指示が出されています (対称キーを使用したユーザー名認証を参照)。このプロパティが明示的に指定されていなければ、セキュリティポリシーは <Windchill>/bin/adminTools/WebServices/security.properties で設定されているようにデフォルト値である security.policy プロパティの値になります。
プロジェクトのクライアント部分を生成するとき、このポリシーに基づいて、デフォルトのクライアント側コールバックハンドラのコンフィギュレーションが使用されます。これは、src_client/build.xml ビルドスクリプトの handler.config プロパティで指定されています。handler.config プロパティのフォーマットを表示するには、src_client ディレクトリ内から ant usage コマンドを実行します。
com.ptc.jws.client.handler パッケージには、サポートされているセキュリティポリシーを Web サービスクライアントが使用するための基本的なコールバックハンドラもいくつか含まれています (これらのハンドラのクラスは、クライアントを構築するときに自動的にパッケージ化されます)。これらのクラスを使用してセキュリティ情報を Web サービスクライアントに提供することも、javax.security.auth.callback.CallbackHandler を実装するクラスを指定し、そのクラスを handler.config プロパティの一部として指定することによって独自のクラスを作成することもできます。
usernameAuthSymmetricKeys 用のデフォルトのコールバックハンドラは、コマンドラインで資格証明を要求します。これは、Swing ダイアログを使用してユーザーに資格証明を要求する、またはシステムプロパティから資格証明を取得するように設定できます。これは、スレッドにつき一回のみ資格証明を要求し、ユーザーがプログラムによってクリアするまでその資格証明を再利用します。
プログラムによって資格証明を指定する場合は、setUsername および setPassword メソッドを使用する com.ptc.jws.client.handler.Credentials クラスを使用する必要があります。
Web サービスフレームワークでは、2 つのコールバックメカニズムが使用されています。
WSIT (Web Services Interoperability Technologies) メカニズムでは、javax.security.auth.callback.CallbackHandler 実装が使用されます。
これらのハンドラは、webServerAuthenticated 以外のセキュリティポリシーに使用され、Web サービスに渡された資格証明またはセキュリティトークンを収集します。これらの実装がアプリケーションの要件に対応しない場合は、build.xml ファイル内の handler.config プロパティを使用して独自の実装を指定できます。
JAX-WS ハンドラ チェーンは、実質的には、一般的に以下のものを実装する Java クラスのリストです。
javax.xml.ws.handler.soap.SOAPHandler<javax.xml.ws.handler.soap.SOAPMessageContext>
クライアントコードを実装する代わりに、これらのハンドラのクラスを使用して、SOAP 操作用の汎用機能と条件付けを提供できます。Web サービスフレームワークには、詳細を処理するための基本的なハンドラがいくつか用意されています。たとえば、これらを使用して、Web サービスの URL を指定したり、Web サーバー認証が使用されるときにリクエストに資格証明を追加したりします。
ヘッダーを SOAP リクエストに追加する、一般的な方法でエラーを処理するなどの追加の機能を実行するためのハンドラを作成することもできます。build.xml ファイル内の handler.chain プロパティの値を変更することで、クライアントのハンドラチェーンをカスタマイズできます。これらのプロパティの詳細については、build.xml ファイル内で説明されています。