2011-07-07 6 views
2

JAX-WSを使用してWPSのHumanTask APIを使用するフロントエンドWebアプリケーションを構築する必要があります。このWebアプリケーションは、特定のユーザーの現在のタスクを照会したり、以前に他のユーザーが主張していないタスクを主張したり、タスクを完了したりすることができます。このWebアプリケーションは、HumanTaskサービスを提供するセルとは別のセルのWAS 7.0にデプロイされます(現在、WASとして別のWPSインスタンスを使用していますが、最終的にはWPS機能のない単純なWASになります)。私たちは、次の手順によりLTPA生成キーを同期:「セキュリティ」>「グローバル・セキュリティー」への1つのセルにWebSphere JAX-WSクロスセル認証

  1. ログイン
  2. ゴー。 「認証」の下にパスワード
  3. 入力LTPAキーが
  4. をエクスポート先となるファイル名を確認し、パスワード
  5. を確立
    1. 「にクロス・セル・シングル・サインオン」の下で「LTPA」
    2. をクリックしてください「鍵のエクスポート」
  6. を上
  7. クリックして、他のサーバへ
  8. コピーし、生成されたファイルをログアウト
  9. 他のセルにログイン
  10. [セキュリティ]> [グローバルセキュリティ]に移動します。 「認証」の下
    1. 入力以前のパスワード「にクロス・セル・シングル・サインオン」の下で「LTPA」
    2. をクリック
    3. パスワードの確認
    4. 入力
    5. クリックでエクスポートしたLTPAキーでファイル名"インポートキー"
  11. 再起動サーバ

簡単なUIとHumanTask JAX-WSサービスを使用するWebサービスクライアントを使用して、概念の証明としてGWTを使用した単純なWebアプリケーションを開発しました。このWebアプリケーションは、Siteminderオーセンティケータの背後で保護されています(WebアプリケーションのSiteminderエージェントに初めて資格情報を要求するWebフォームにリダイレクトするとき)。 Webサービス・クライアントはJAX-WS標準に従って開発され、追加の依存関係は追加されず、WebSphere JAX-WS実装(Apache Axis2)に依存しています。デプロイ後、私たちは運なしで2つのシナリオをテストした:

シナリオ

  • をデフォルトでWPS」HumanTaskサービスプロバイダが結合設定されたデフォルトのポリシーおよびポリシーセットの共有と 『BPC Webサービス』に設定したポリシーに取り付けられています。無効にする。
  • サービス・プロバイダと同じポリシー・セットを使用するようにHumanTaskサービス・クライアントを構成します。
  • カスタムWebアプリケーションにログインします。現在のタスクを照会しようとすると、私たちは次の例外を取得:

    com.ibm.wsspi.wssecurity.core.SoapSecurityException: security.wssecurity.WSSContextImpl.s02: com.ibm.websphere.security.WSSecurityException: Exception org.apache.axis2.AxisFault: CWWSS6521E: The Login failed because of an exception: javax.security.auth.login.LoginException: Login Failure: all modules ignored ocurred while running action: [email protected]fef 
    

サービス提供者側ではありませんエラーメッセージ。

シナリオB

  • 変更WPS」HumanTaskサービス・プロバイダー構成HTTP GET経由の共有ポリシーセットを有効にします。このようにして、サービスプロバイダのWSDLにはポリシーセットに関する情報が格納されます。
  • サービスクライアントでポリシーセットの設定を変更し、HTTP GETを使用してプロバイダからポリシーセットを取得します。
  • カスタムWebアプリケーションにログインします。サービスプロバイダのログで

    CWWSS7053W: No web services security custom bindings were found. Default bindings will be used. 
    

    :前の例外は、我々はサービスのクライアントログで警告を次のように表示が報告されている点に到達する前に

    javax.xml.ws.soap.SOAPFaultException: security.wssecurity.WSSContextImpl.s02: com.ibm.websphere.security.WSSecurityException: Exception org.apache.axis2.AxisFault: CWWSS6521E: The Login failed because of an exception: javax.security.auth.login.LoginException: Login module com.ibm.ws.wssecurity.wssapi.token.impl.UNTConsumeLoginModule login() method returned false ocurred while running action: [email protected]a0 
    

:現在のタスクを照会しようとすると、私たちは次の例外を取得します次のエラーが表示されます。

CWWSS5514E: An exception while processing WS-Security message. 

そして、saをレポートする一連のFFDCが生成されます私はサービスクライアント側で例外があります。

私たちを助けることができる人はすばらしいでしょう!

答えて

2

同じ問題がありましたが、次の手順で解決できました。基本的には、HTM JAXWS APIに適用されるデフォルトのポリシーセットを変更する必要があります(デフォルトは実際の例です)。カスタムプロバイダバインディングを使用して、 "呼び出し元"を介してLTPAトークンに含まれるIDを抽出できます。以下のステップ:

カスタムポリシー・セットのバインディングを作成します

1)をクリックし、「サービス」>「ポリシー・セット」>「一般的なプロバイダポリシー・セット・バインディング」 2)「結合「プロバイダのサンプル」を選択し、クリックしてくださいコピー... " 3)" LTPA Authenticated Caller "として名前を入力してOKをクリック 4)バインドリストの" LTPA Authenticated Caller "をクリック 5)" WS-Security "をクリックし、" Caller " 6)「新規」をクリックし、次の詳細を入力します(その他のフィールドは空白のままにしてください)。 名前:auth_ltpa 発信者識別ローカル部分:LTP AV2 発信者の身元の名前空間URI:http://www.ibm.com/websphere/appserver/tokentype [OK]をクリックし

割り当てポリシー・セットおよびバインディング

1)を展開し、 "サービス"、 "サービス・プロバイダー" をクリックして 2) "HTMJAXWSService" 3をクリックします)をクリックしてチェックボックスをオンにして、ポリシーセットアタッチメントリストのHTMJAXWSServiceサービスを選択し、アタッチポリシーセットドロップダウンリストの "LTPA WSSecurity default"をクリックします。 4)チェックボックスをクリックして、ポリシーセットアタッチメントリストでHTMJAXWSServiceサービスを選択し、 Assign Bindingドロップダウンリスト01の "LTPA Authenticated Caller"で5)すべての変更をマスター構成に保存します。

割り当てポリシー・セットおよびバインディング

1)「サービス」を展開し、「サービスクライアント」 2をクリックしてください)「デプロイ済資産」の欄には、クライアントを含むモジュールと一致した「HTMJAXWSService」リンクをクリックしてください を設定します。3)チェックボックスをクリックして、[ポリシーセットの添付ファイル]リストでHTMJAXWSServiceサービスを選択し、[ポリシーセットの添付]ドロップダウンリストで[LTPA WSSecurity default]をクリックします。この設定がすべての子レベル(つまりポートとすべてのメソッド)によって継承されていることを確認してください 4)チェックボックスをクリックして、ポリシーセットの添付ファイルリストでHTMJAXWSServiceサービスを選択し、Assign Bindingドロップダウンリストの "Default" 5)今LTPA認証を使用してHTM APIへを通して、あなたのクライアントから呼び出すことが可能なはずであるマスター構成

結論

へのすべての変更を保存します。これを行うには、認証を要求するか、認証されていないURLに対して認証を提供するようにクライアントアプリケーションを設定する必要があります(後者は、SiteMinder TAIが認証されたユーザーIDをあらかじめ入力することを期待するアプリケーションに適しています)。

希望すると便利です。

関連する問題