Segurança Java EE 6 EJB

0 respostas
duodecimo

Estou estudando com implementar segurança no Java EE 6.
Resolví tentar um teste básico (bem minimalista) usando informações do JAVA EE 6 Tutorial Vol. 1

Usando: Netbeans 6.9 (com glassfish v3):

a) Instanciei o Servidor Glassfish e carreguei o Admin.
b) Em Security, chequei default principal-role-mapping.
c) No file realm criei um usuário + senha + grupo (grupo = GFUser).
d) Em um projeto tipo Enterprise, anotei um método de EJB stateless com: @RolesAllowed(“GFUser”)

Rodei a aplicação, tudo funcionava normal, e quando tentei acessar o método anotado, obtive uma exceção de usuário sem autorização no role.

Minha dúvida é que, pelo que eu havia entendido de minhas leituras, o glassfish deveria ter solicitado a autenticação (BASIC, por default) automáticamente.

Conseguí fazer funcionar acrecentando ao método do managed bean que chama o método anotado do EJB o seguinte:

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();

HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();

boolean authenticate = request.authenticate(response);

try { 

Será que eu entendí errado ou será que existe alguma forma melhor de fazer (mantendo o minimalismo)?

Agradeço qualquer opinião/orientação que possa receber.

Criado 2 de julho de 2010
Respostas 0
Participantes 1