動的パートナ・リンクを起動する際のセキュリティ証明書のオーバーライド

動的パートナ・リンクを使用すると複数のWebサービスと対話できます。この対話には、メッセージを暗号化するために様々なセキュリティ証明書を必要とするメッセージ保護ポリシーの使用が含まれる場合があります。これらの証明書は、Webサービスごとに異なる場合があります。キーストア受信者別名値を指定して、WebサービスのWSDLファイル内のセキュリティ証明書をオーバーライドできます。

パートナ・リンクを起動する際にセキュリティ証明書をオーバーライドするには:

  1. 文字列タイプの変数(たとえば、KEYSTORE_RECIPIENT_ALIAS)を定義します。図8-5に詳細を示します。

    図8-5 KEYSTORE_RECIPIENT_ALIASの変数定義

    図8-5の説明が続きます
    「図8-5 KEYSTORE_RECIPIENT_ALIASの変数定義」の説明
  2. assignアクティビティの「コピー・ルール」タブで、orakeyを変数KEYSTORE_RECIPIENT_ALIASに割り当てます。図8-6に詳細を示します。

    図8-6 KEYSTORE_RECIPIENT_ALIASへのorakeyの割当て

    図8-6の説明が続きます
    「図8-6 KEYSTORE_RECIPIENT_ALIASへのorakeyの割当て」の説明
  3. Webサービスのパートナ・リンクを起動するinvokeアクティビティで、「プロパティ」タブをクリックします。
  4. keystore.recipient.aliasプロパティをクリックします。

    ノート:

    BPEL 2.0プロセスでは、プロパティは「プロパティ」列に自動的に表示されません。「追加」 アイコンをクリックして、プロパティとその内容(変数またはXPath式)を選択する必要があります。

  5. 「値」列をダブルクリックし、「参照」(...)アイコンを表示します。
  6. 「参照」(...)アイコンをクリックし、「アダプタ・プロパティ値」ダイアログを表示します。
  7. 「参照」アイコンをクリックして、「変数XPathビルダー」ダイアログを表示します。
  8. 値としてkeystore_recipient_aliasを選択し、「OK」をクリックします。図8-7に詳細を示します。BPELプロセスでWebサービスを起動する際にWSDLファイルに設定されているセキュリティ証明書が、このプロパティによってオーバーライドされます。

    ノート:

    BPEL 2.0では、「プロパティ」表には、「名前」列および「値」列のみが存在します。「タイプ」列はありません。

    図8-7 invokeアクティビティの正規化されたメッセージのプロパティkeystore.recipient.alias

    図8-7の説明が続きます
    「図8-7 invokeアクティビティの正規化されたメッセージのプロパティkeystore.recipient.alias」の説明
  9. 「適用」をクリックし、「OK」をクリックします。

    完了すると、BPELファイルは次のように定義されます。

    . . .
    . . .
    <variables>
      <variable name="WsaAddress" element="ns6:EndpointReference"/>
      <variable name="KEYSTORE_RECIPIENT_ALIAS" type="xsd:string"/>
    </variables>
    
    <assign name="AssignAddress">
      <copy>
        <from
    expression="'http://localhost:8001/soa-infra/services/default/ServiceWithNewCer
    tificate!1.0*soa_c94537fb-97a4-4b0f-900f-fefffc34f7fe/service_ep'"/>
        <to variable="WsaAddress"
        query="/ns6:EndpointReference/ns6:Address"/>
      </copy>
      <copy>
        <from variable="WsaAddress"/>
        <to partnerLink="Service"/>
      </copy>
    </assign>
    
    <assign name="AssignAlias">
      <copy>
        <from expression='"orakey"'/>
        <to variable="KEYSTORE_RECIPIENT_ALIAS"/>
      </copy>
    </assign>
    
    <invoke name="Invoke"
            inputVariable="Invoke_InputVariable" 
            partnerLink="Service"
            portType="ns1:ServiceBPELProcess" 
            operation="process"
            bpelx:invokeAsDetail="no">
    
                <bpelx:inputProperty name="endpointURI" 
                                     variable="inputVariable"
                                     part="payload"
                                     query="/client:process/client:input"/>
    
                <bpelx:inputProperty name="keystore.recipient.alias" 
                                     variable="KEYSTORE_RECIPIENT_ALIAS"/>
    </invoke>
    

正規化されたメッセージのプロパティの詳細は、「メッセージ・ヘッダーを介した正規化メッセージ・プロパティの伝播」を参照してください。