Sie sind auf Seite 1von 4

09/10/13

JAX-WS Service: Autenticao Web Service usando Java

JAX-WS Service: Autenticao Web Service usando Java


Veja neste artigo como adicionar os elementos de segurana para o JAX-WS Service.

Go s t ei (0)

(0)

Imagine um cenrio onde voc desenvolveu um Web Service e o publicou no servidor. Agora todos podem acess-lo, mas voc queria apenas que clientes especificamente registrados o acessassem, que apenas pessoas autorizadas possa acessar o Web Service. Uma maneira de fazer isso usando o procedimento de autenticao em JAX-WS. Isto pode ser alcanado pelo cliente fornecendo um "username" e um "password", anexado no cabealho da solicitao SOAP e envi-lo para o servidor. O servidor, em seguida, analisa o documento SOAP e busca um "username" e "password" no cabealho. Em seguida, o servidor verifica se o "username" e "password" so vlidos, comparando-os com um banco de dados (ou qualquer outro mtodo preferencial) de usurios autorizados. Supondo que o leitor deste artigo tenha conhecimentos bsicos sobre SOAP e Web Services. Etapa 1 : Criar um programa simples em Java (Service) Primeiro, vamos definir o servio para ser implementado. Listagem 1 : HelloWorld.java

p a c k a g ec o m . d e v m e d i a . w s ;p u b l i ci n t e r f a c eH e l l o W o r l d{

S t r i n gg e t H e l l o W o r l d M e s s a g e ( )

www.devmedia.com.br/jax-ws-service-autenticacao-web-service-usando-java/28751

1/4

09/10/13

JAX-WS Service: Autenticao Web Service usando Java

A implementao a seguinte: Listagem 2 : HelloWorldImpl.java

p a c k a g ec o m . d e v m e d i a . w s ;p u b l i cc l a s sH e l l o W o r l d I m p l i m p l e m e n t sH e l l o W o r l d {

@ O v

Passo 2 : Modificar o servio como Web Service Modificar o servio criado na seo anterior para o servio da Web e tambm verificar a autenticao do usurio como mostra abaixo: A viso de interface HelloWorld.java a seguinte: Listagem 3 : HelloWorld.java updated

p a c k a g ec o m . d e v m e d i a . w s ;i m p o r tj a v a x . j w s . W e b M e t h o d ; i m p o r tj a v a x . j w s . W e b S e r v i c e ; i m p o r t

No Web Service do lado do servidor, se a solicitao parmetros de cabealho via WebServiceContext. Implementao revisada HelloWorldImpl.java a seguinte: Listagem 4 : HelloWorldImpl.java updated

p a c k a g ec o m . d e v m e d i a . w s ;i m p o r tj a v a . u t i l . L i s t ; i m p o r tj a v a . u t i l . M a p ;i m p o r tj a v a x . a n n o

Se voc notar no cdigo acima temos detalhes como nome de usurio e senha do cabealho da solicitao. Verifique se o nome de usurio "DevUser" e se a senha "password", em seguida retorna uma mensagem de autenticao bem-sucedida caso contrrio retorno a mensagem de falha de autenticao. Passo 3 : Adding WS exposed code Publicar a localidade Web Service criando o Endpoint publisher e expor o servio no servidor.

E n d p o i n t . p u b l i s h ( " h t t p : / / l o c a l h o s t : 9 0 0 0 / w s / h e l l o " ,n e wH e l l o W o r l d I m p l ( ) ) ;

Esta linha aqui comea uma leve http server endpoint que implanta seu web service e comea a aceitar solicitaes de entrada. O mtodo a ser publicado usa dois parmetros:

Endpoint URL String


www.devmedia.com.br/jax-ws-service-autenticacao-web-service-usando-java/28751 2/4

09/10/13

JAX-WS Service: Autenticao Web Service usando Java

Implementador do objeto, neste caso a classe de implementao HelloWorld, que exposta como uma web service do endpoint identificado pela URL mencionada no parmetro abaixo: Listagem 5 : HelloWorldPublisher.java

p a c k a g ec o m . d e v m e d i a . e n d p o i n t ;i m p o r tj a v a x . x m l . w s . E n d p o i n t ; i m p o r tc o m . m r b o o l . w s . H e l l o

Passo 4 : Criar um Cliente Web Service No cdigo do cliente, coloque o "username" e "password" no cabealho de solicitao ao envi-lo para a autenticao. Os comentrios sobre cada passo no cdigo explica o client code. O arquivo do cliente, HelloWorldClient.java o seguinte: Listagem 6 : HelloWorldClient.java

p a c k a g ec o m . d e v m e d i a . c l i e n t ;i m p o r tj a v a . n e t . U R L ; i m p o r tj a v a . u t i l . C o l l e c t i o n s ; i m p o r tj

Passo 5 : Compile e execute Compile os arquivos de servio, edite-os e execute-os. Crie os arquivos em pacotes.

c o m p i l e a n d r u n . b a t d i r/ b/ s* . j a v a> >f i l e s . t x t j a v a c@ f i l e s . t x t j a v ac o m . d e v m e d i a . e n d p o i

Coloque os arquivos em pacotes no diretrio com.devmedia. A primeira linha do lote lista todos os arquivos java em subpastas e grava o caminho completo dos arquivos de "files.txt". Segunda linha emite o comando compile para todos os arquivos java listados no arquivo "files.txt" Terceira linha executa a classe HelloWorldPublisher. Execute o arquivo de lote e a sada (System.out present na classe HelloWorldPublisher) como se segue: Web service published @ http://localhost:9000/ws/hello Agora voc pode chamar o Web Service. Passo 6 : Test WS Client Gravar um arquivo de lote para testar o client.

www.devmedia.com.br/jax-ws-service-autenticacao-web-service-usando-java/28751

3/4

09/10/13

JAX-WS Service: Autenticao Web Service usando Java

e x e c u t e C l i e n t . b a t j a v ac o m . d e v m e d i a . c l i e n t . H e l l o W o r l d C l i e n t P A U S E

Executar o executeClient.bat e a sada a seguinte:

H e l l oD e v U s e rt ow o r l do fJ a xW S-V a l i dU s e r !

Passo 7 : Generate the WSDL Testar o Web Service acessando o WSDL (Web Service Definition Language) gerador de documentos via URL http://localhost:9000/ws/hello?wsdl". Esta WSDL descreve em detalhes a API do Web Service. Como language-neutral, client pode ser construdo em qualquer linguagem de programao.

Concluso
Neste artigo vimos como fornecer uma autenticao bsica para um Web Service usando a linguagem de programao Java. Artigo traduzido e originalmente publicado em: http://mrbool.com/web-service-authentication-using-java/28

www.devmedia.com.br/jax-ws-service-autenticacao-web-service-usando-java/28751

4/4

Das könnte Ihnen auch gefallen