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>