Dentro do método intercept queria saber como recupero essa informação.
Dentro de um EJB? Não tem como. Simplesmente porque o EJB pode ser acessado de qualquer contexto (Java Desktop, ME, outras linguagens…). Aliás, nem deveria, já que EJBs têm o propósito de lidar com tarefas de negócio, não com detalhes de implementação.
[]´s
B
breno500as
São camadas diferentes, um interceptador está na camada de negócio(desacoplada do cliente), já uma requisição ou resposta estão na camada de controle…
F
far56
Pessoal obrigado pelas explicações, mas como poderia então recuperar uma autenticacao realizada pelo JAAS em EJBs diferentes?
Ex.
EBJ1 faz um servicelocator para o EBJ2, mas eu estou autenticado apenas no EBJ1, sei que preciso autenticar no EJB2, estou usando implementacao do JAAS + SSO, no servidor OC4J, faz a autenticacao usando cookie para guardar as informacoes do usuario, isso funciona perfeitamente quando eu mudo de contexto app, pois eu recupero o cookie e faço a autenticacao do usuario no novo contexto, mas quando estou fazendo EJB conversar com EJB o negócio é diferente.
Alguém tem alguma idéia?
B
breno500as
Se vc quiser trabalhar com autenticação e autorização utilizando EJBs vc deve trabalhar com metadados tais como : @RolesAllowed, @DeclareRoles,@PermitAll,@DenyAll, já para recuperar um usuário vc pega o getCallerPrincipal da interface EJBContext(injetada através de @Resource)…
enfim da uma pesquisada no forum ou no google para saber mais sobre o assunto…