クライアント・アプリケーションでの JAAS サブジェクトからのトークンの検索

WebSphere® Application Server Version 6 では、セキュリティー・ハンドラーは セキュリティー・トークンの伝搬の責任を担います。 これらのセキュリティー・トークンは、Simple Object Access Protocol (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 を知っておく必要があります。 以下のステップを実行して、クライアント・アプリケーションからセキュリティー・トークン・データを検索します。

  1. 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);
  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(“…”);
    }
これらのステップが完了すると、クライアント・アプリケーションで JAAS サブジェクトからセキュリティー・トークンが検索されています。
関連概念
セキュリティー・トークン

フィードバック