Autenticação e autorização (WebService)

Pessoal,

Espero que possam tirar uma dúvida, já que não tenho grande experiência com WS…

Desenvolvi um webservice utilizando jax-ws e estou rodando no tomcat… a parte de segurança, na mensagem estou seguindo o padrão ws-security… fazendo autenticação de nome de usuário com chaves simétricas… e no transporte utilizando comunicação SSL, eu gostaria de segmentar a autorização dos clientes por serviço, tem alguma outra forma “limpa” (leia-se, sem gambiarra…rs) de fazer isso sem ser por EJB?

Implementei uma classe PasswordValidationCallback para validar a senha do usuário no banco também…

Tenho lido bastante material na internet e só achei implementações de autorização no nível da aplicação com EJB, principalmente utilizando JBOSS… o que vcs me indicam? :roll:

Consegui resolver meu problema faz um tempo, mas só lembrei de postar a solução aki agora:

Para segmentar a autorização também no nível dos métodos, eu verifico se a credencial do usuário autenticado através das chaves tem permissão para acessar aquele serviço (faço a validação de permissões no BD), segue abaixo como pegar a credencial da chave:


WebServiceContext context;

[...]

SubjectAccessor.getRequesterSubject(context).getPublicCredentials().toString().replaceAll(".([^$]*).", "$1")

Espero que possa ajduar alguém tbm… :smiley:

Abraço