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!
Autenticação de usuário e senha em Web Service
5 Respostas
Qual seria a dúvida?Mostre o que vc já fez.
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?
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
Valeu asaudate! Vou pesquisar sobre WS-Security e sobre esse framework que vc citou.
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);