Beruflich Dokumente
Kultur Dokumente
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
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:
09/10/13
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
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
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