Autenticação de usuário e senha em Web Service

5 respostas
D

Pessoal, estou com dúvida em como fazer autenticação de usuário e senha em um web service.
Se alguém puder ajudar eu ficaria muito agradecido!

5 Respostas

R

Qual seria a dúvida?Mostre o que vc já fez.

D

raf4ever, obrigado pela resposta!

Então … gerei as classes necessárias pra acessar o Web Service através do wsdl, utilizando o wsimport. Até aí tudo bem. Com as classes geradas eu consigo chamar o método do Web Service. Ex:

ECService service = new ECService_Service().getECServicePort();
     String response = service.updateECs(new WsMessage());

Sendo que, as classes ECService, ECService_Service e WsMessage foram geradas automaticamente pelo wsimport. Se não tivesse autenticação de usuário e senha, esse código já resolveria o meu problema. No entanto, a outra empresa que disponibiliza o Web Service quer que eu faça autenticação de usuário e senha. E é exatamente aí que está minha dúvida. Como fazer essa autenticação?

A

Procure pelo padrão WS-Security. Ele é responsável por determinar como envelopes SOAP devem fornecer usuário e senha para as aplicações, e a maneira de como passar esses dados varia de framework para framework.

[jaba mode=on]
Se você quiser fazer isso de um jeito bem fácil, você pode usar o Banshee Framework, que é feito justamente para facilitar esse tipo de tarefa tediosa.
[/jaba]

[]'s

D

Valeu asaudate! Vou pesquisar sobre WS-Security e sobre esse framework que vc citou.

D

Vou postar a solução para fazer autenticação no servidor. Ficou muito simples:

ECService service = new ECService_Service().getECServicePort();
      WsMessage message = new WsMessage();

      Map requestContext = ((BindingProvider)service).getRequestContext();

      requestContext.put(BindingProvider.USERNAME_PROPERTY, "nome_usuario");
      requestContext.put(BindingProvider.PASSWORD_PROPERTY, "senha_usuario");

      String response = service.updateECs(message);
Criado 9 de maio de 2011
Ultima resposta 12 de mai. de 2011
Respostas 5
Participantes 3