Bpel 12c - вызов веб-сервисов с базовой аутентификацией

Я использую Oracle BPEL 12c для разработки процесса.

Мне нужно вызвать внешнюю службу с базовой аутентификацией. Мне нужно передать учетные данные, полученные в моей открытой конечной точке службы, во внешнюю службу.

Когда я звоню, я получаю это:

<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
-<part name="summary">
<summary>
oracle.fabric.common.FabricException: oracle.fabric.common.FabricException: Error in getting XML input stream:XXXXXX?WSDL: Server Authentication Required: Error in getting XML input stream: XXXX?WSDL: Server Authentication Required
</summary>
</part>
-<part name="detail">
<detail>Server Authentication Required</detail>
</part>
</remoteFault>

Я попытался определить на композите также пароль oracle.webservices.auth.password и oracle.webservices.auth.username для внешнего сервиса.

Также свойства javax.xml.ws.security.auth.username и javax.xml.ws.security.auth.password без успеха.

Любое предложение?

С уважением, Рикардо

1 ответ

Я полагаю, ваш составной фрагмент должен выглядеть так:

<reference name="Service1" ui:wsdlLocation="test1.wsdl">
    <interface.wsdl  interface="http://tempuri.org/#wsdl.interface(IService1)"/>
    <binding.ws port="http://tempuri.org/#wsdl.endpoint(Service1/BasicHttpBinding_IService1)"  location="test1.wsdl" soapVersion="1.1">
        <property name="weblogic.wsee.wsat.transaction.flowOption" type="xs:string" many="false">WSDLDriven</property>
        <property name="oracle.webservices.auth.username" type="xs:string" many="false">test</property>
        <property name="oracle.webservices.auth.password" type="xs:string" many="false">password</property>
        <property name="oracle.webservices.preemptiveBasicAuth" type="xs:string" many="false">true</property>
    </binding.ws>
</reference>

А также хорошая практика использовать переменные при определении имени пользователя и пароля вместо явно имени пользователя и пароля

    <property name="oracle.webservices.auth.username" type="xs:string" many="false">{$username}</property>
     <property name="oracle.webservices.auth.password" type="xs:string" many="false">{$password}</property>

а затем переопределить их в сгенерированном cfg_plan.xml при развертывании составного приложения

 <reference name="Service1">
     <!--Add search and replace rules for the binding properties-->
     <binding type="ws">
        <attribute name="port">
           <replace>{your_port}</replace>
        </attribute>
        <attribute name="location">
           <replace>{your_location}</replace>
        </attribute>
        <property name="weblogic.wsee.wsat.transaction.flowOption">
           <replace>WSDLDriven</replace>
        </property>
        <property name="oracle.webservices.auth.username">
           <replace>test</replace>
        </property>
        <property name="oracle.webservices.auth.password">
           <replace>password</replace>
        </property>
        <property name="oracle.webservices.preemptiveBasicAuth">
           <replace>true</replace>
        </property>
     </binding>
  </reference>
Другие вопросы по тегам