Nesse post eu vou mostrar como chamar um serviço com Basic Authentication no BPEL ou BPM.
Vou fazer criando um processo BPM porém para criar no BPEL é o mesmo processo.
Obs: Para a realização desse post foi usado a versão 11.1.1.6.0 do JDeveloper.
O print abaixo mostra o composite de um projeto bpm com um Web Service.
Esse serviço possui Basic Authentication, por isso necessitamos passar login e senha para acessar qualquer método desse serviço.
Para chamar o serviço primeiramente nós precisamos setar as Policies.
Para isso clique com o botão direto no serviço e clique em Configure WS Policies.
Na seguinte tela, na seção Security clique no botão ” + ” e selecione o item oracle/wss_username_token_client_policy.
Clique em OK.
Você será redirecionado para a tela principal do composite. Repare que agora o serviço ficou com o desenho de um cadeado amarelo.
Agora nós vamos setar o login que sera usado para autenticar esse serviço.
Para fazer isso selecione o serviço e na seção Bindings Properties, clique no botão verde ” + “.
E adicione a seguinte propriedade:
Name: oracle.webservices.auth.username
Value: SEU_USERNAME_PARA_AUTENTICACAO
Clique em OK.
A propriedade deveria aparecer na lista de propriedades da seção Bindings Properties, mas o Jdeveloper deve ter algum bug que não deixa essas propriedades serem exibidas. Porém não se preocupe com isso.
Agora vamos setar a senha para o usuário, repita o mesmo passo para setar o username, porém agora utilize as propriedades abaixo:
Name: oracle.webservices.auth.password
Value: SENHA_DO_USUARIO.
Pronto você configurou a autenticação para poder chamar seu serviço no BPEL ou BPM.
Para ter certeza que as propriedades foram adicionadas com sucesso, basta visualizar o source do composite.xml, caso as propriedades que você adicionou esteja aparecendo na referencia do seu serviço, isso que dizer que tudo funcionou como esperado.
A referência do seu serviço deve ser parecida com essa:
<reference name="ServicoSeguro" ui:wsdlLocation="CheckIn.wsdl"> <interface.wsdl interface="http://www.xxx.xxx.xxx/#wsdl.interface(CheckInSoap)"/> <binding.ws port="http://www.xxx.xxx/xxx/#wsdl.endpoint(CheckIn/CheckInSoap)" location="CheckIn.wsdl" soapVersion="1.1"> <wsp:PolicyReference URI="oracle/wss_username_token_client_policy" orawsp:category="security" orawsp:status="enabled"/> <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" override="may">SEU_USERNAME_PARA_AUTENTICACAO</property> <property name="oracle.webservices.auth.password" type="xs:string" many="false" override="may">SENHA_DO_USUARIO</property> </binding.ws> </reference>
Até o próximo post.