(Segurança WebService) Qual melhor maneira?

Boa Tarde,
Estou fazendo meu primeiro WS profissionalmente, porem como em qualquer situação, uma transação web precisa de segurança.
Eu já vi diversas formas de fazer a segurança de um WS, porem não consegui descobrir qual delas é a melhor. Então eu vos pergunto qual destes métodos é o melhor?
O http request header recuperado atravez do MessageContext ou em um campo header dentro do xml recebido como o exemplo abaixo?

<s:envelope>
<s:header>
<password>123</password><username>321</username>
</s:header>
<s:body>
...
</s:body>

Caso alguem saiba uma forma melhor que estas, me avisa.

Grato
Fernando de Almeida

olá amigo, de forma profissional eu uso o SpringSecurity com autenticação por Digest, é bem flexivel e fcil de lidar

a requisição soh chega no web service se for usuario autenticado e autorizado

leia sobre o Digest em JEE

fallow

Eu pesquisei um pouco sobre este tal de digest, mas não sei se consegui entender o seu funcionamento.
somente para ver se entendi, seria feita a requisição pelo client, porem antes de enviar qualquer dado é feita a autenticação que acontece independente do WS, teria um popup onde seria digitado usuario e senha e utilizando este Digest estes dados seriam criptografados e enviados ao servidor, caso o usuario estivesse autenticado, dai sim o WS seria ativo e receberia as informações enviadas pelo usuario, e o XML de requisição nao precisaria de ter os dados de usuario e senha, pois ele já estaria logado no servidor.
É isso mesmo que eu entendi, ou não?
Pois se for isto mesmo, hoje a empresa já possui um sistema de segurança que faz a autenticação para os sistemas, eu só teria que fazer o usuario se logar neste sistema e então receber as informações? se for isto mesmo, ou se nao for mas for possivel fazer dessa forma, como é a melhor maneira para fazer este meio de caminho (a abertura do sistema de segurnça e a autenticação)?

Att.
Fernando de Almeida

Olá amigo, no caso do popup é opcional, vc pode usar qualqer form html, jsf, jsp… independe…

Você tb pode fazer a autenticação via código mesmo, com o HTTPClient da apache commons, vc consegue fazer get e post via linhas de código autenticar e verificar usuarios…tudo…

Se o sistema de autenticação é externo, vc pode implementar a autenticação do usuario no serviço de autenticação do SpringSecurity e assim adicionar o usuario autenticado no contexto de segurança do SpringSecurity…

Fica ai minha dica
Fallow