セキュリティー・ハンドラーは
セキュリティー・トークンの伝搬を担います。
これらのセキュリティー・トークンは、SOAP セキュリティー・ヘッダーに組み込まれ、
ダウンストリーム・サーバーに渡されます。
このタスクについて
セキュリティー・トークンは
com.ibm.wsspi.wssecurity.auth.token.Token インターフェースのインプリメンテーション・クラスでカプセル化されます。セキュリティー・トークン・
データは、サーバー・アプリケーションまたはクライアント・アプリケーションのいずれかから検索することができます。
クライアント・アプリケーションでは、アプリケーションは要求ジェネレーターおよび応答コンシューマーとして機能し、
Java 2 Platform,
Enterprise Edition (J2EE) クライアント・アプリケーションとして実行します。Web サービス・セキュリティーの
コンシューマー・コンポーネントは、現行の Web サービス呼び出しに対する MessageContext オブジェクトの
プロパティーの 1 つで受け取るセキュリティー・トークンを保管します。
その Web サービス呼び出しの javax.xml.rpc.Stub インターフェースを介して、トークン・オブジェクトのセットを検索することができます。
複数のセキュリティー・トークンが SOAP セキュリティー・ヘッダーに組み込まれている場合、
検索するセキュリティー・トークンおよびそれらのトークン ID を知っておく必要があります。
以下のステップを実行して、クライアント・アプリケーションからセキュリティー・トークン・データを検索します。
プロシージャー
- com.ibm.wsspi.wssecurity.token.tokenPropergation 鍵ストリングを使用して、
javax.xml.rpc.Stub インターフェースでプロパティー値を介してトークンの Hashtable を取得します。
次の例は、Hashtable の取得方法を示しています。
java.util.Hashtable t;
javax.xml.rpc.Service serv = …;
MyWSPortType pt = (MyWSPortType)serv.getPort(MyWSPortType.class);
t = (Hashtable)((javax.xml.rpc.Stub)pt)._getProperty(
com.ibm.wsspi.wssecurity.Constants.WSSECURITY_TOKEN_PROPERGATION);
- Hashtable でターゲットとするトークン・オブジェクトを検索します。
Hashtable 内の各トークン・オブジェクトは、そのトークン ID を鍵として設定されます。セキュリティー・トークンを検索するには、
ユーザーはセキュリティー・トークン ID について事前知識を持っている必要があります。
次の例は、特定のトークン ID 値で、セキュリティー・ヘッダーからユーザー名トークンを検索する方法について示しています。
com.ibm.wsspi.wssecurity.auth.token.UsernameToken unt;
if (t != null) {
unt = (com.ibm.wsspi.wssecuty.auth.token.UsernameToken)t.get(“…”);
}
結果
これらのステップが完了すると、クライアント・アプリケーションで
JAAS サブジェクトからセキュリティー・トークンが検索されます。