Nesse post vou mostrar como adicionar uma autenticação no consumo de um Web Service
utilizando as bibliotecas do jax-ws
. Muitas implementações de Web Service
utilizando Soap
é necessário a implementação de autenticação, normalmente essa autenticação é adicionada no Header
do pacote, porém o jax-ws
quando é gerado normalmente não te da essa implementação, não te dando acesso fácil aos headers
; No exemplo a seguir, vou adicionar um atributo Authorization
com uma autenticação base64
em seu Header
, não irei entrar mostrar como se gera um client
porém vou deixar alguns link no final desse post.
Para quem está acostumado, podemos gerar implementações de Web Services
com o jax-ws
atravéz de várias bibliotecas, porém as mais comuns é a apache cxf wsdl2java
e a Metro wsimport
( normalmente disponível no próprio SKD 1.8 do Java ). Ao gerar as implementações temos os Services
com as notações @WebServiceClient
que geram os Ports
com notações @WebService
e @SOAPBinding
, para adicionarmos a autenticação vamos utilizar os ports, pois devemos realizar um cast
de nosso port
para a interface BindingProvider
.
Referências:
https://stackoverflow.com/questions/7071366/java-web-service-client-basic-authentication
https://tririgafeedia.wordpress.com/2017/03/22/how-do-you-create-java-classes-from-apache-cxf-wsdl2java-tool/
https://www.devmedia.com.br/desenvolvendo-web-services-utilizando-jax-ws/2374
https://www.mkyong.com/webservices/jax-ws/jax-ws-wsimport-tool-example/