セキュリティー・トークンを取得する JAX-WS に基づく Web サービスのクライアント・アプリケーションの開発

セキュリティー・ハンドラーは セキュリティー・トークンの伝搬を担います。 これらのセキュリティー・トークンは、SOAP セキュリティー・ヘッダーに組み込まれ、 ダウンストリーム・サーバーに渡されます。

このタスクについて

この情報は、Java™ API for XML-based Web Services (JAX-WS) に対してのみ適用されます。

セキュリティー・トークンは com.ibm.wsspi.wssecurity.auth.token.Token インターフェースの実装クラスでカプセル化されます。セキュリティー・トークン・ データは、サーバー・アプリケーションまたはクライアント・アプリケーションのいずれかから検索することができます。

クライアント・アプリケーションでは、アプリケーションは要求ジェネレーター および応答コンシューマーとして機能し、 Java Platform, Enterprise Edition (Java EE) クライアント・アプリケーションとして実行します。Web Services Security のコンシューマー・コンポーネントは、現行の Web サービス呼び出しに対する MessageContext オブジェクトのプロパティーの 1 つで受け取るセキュリティー・トークンを保管します。その Web サービス呼び出しの javax.xml.rpc.Stub インターフェースを介して、トークン・オブジェクトのセットを検索することができます。複数のセキュリティー・トークンが SOAP セキュリティー・ヘッダーに組み込まれている場合、 検索するセキュリティー・トークンおよびそれらのトークン ID を知っておく必要があります。 以下のステップを実行して、クライアント・アプリケーションからセキュリティー・トークン・データを検索します。

手順

  1. 鍵ストリング com.ibm.wsspi.wssecurity.token.tokenPropergation を使用し、javax.xml.ws.Stub インターフェースでプロパティー値を使用してトークンの Hashtable を取得します。 次の例は、Hashtable の取得方法を示しています。
    java.util.Hashtable t;
    
    javax.xml.ws.Service serv = …;
    serv.addPort(...);
    javax.xml.ws.Dispatch<Object> dispatch = svc.createDispatch(...);
    
    Map<String, Object> requestContext = dispatch.getRequestContext(); 
    requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, ..);
    requestContext.put(BindingProvider.SOAPACTION_USE_PROPERTY, ..);
    requestContext.put(BindingProvider.SOAPACTION_URI_PROPERTY, ..);
    
    String response = dispatch.invoke(body.toString());
    
    Map<String, Object> responseContext = dispatch.getResponseContext();
    
    t = (Hashtable) responseContext.get( 
    com.ibm.wsspi.wssecurity.Constants.WSSECURITY_TOKEN_PROPERGATION);
  2. 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(“…”);
    }

タスクの結果

上記のステップが完了すると、クライアント・アプリケーションで Web Services Security ハンドラーによって処理されるセキュリティー・トークンが取得されます。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_retrievetokencl_jaxws
ファイル名:twbs_retrievetokencl_jaxws.html