Boa Tarde Galera,
Estou com um problemão que não estou conseguindo resolver por nada.
Estou usando autenticação com o JAAS + JBOSS 4.2.3.
O processo autentica tudo certo. O problema esta ao efetuar o logout.
Ao tentar recuperar o Subject que foi setado no metodo commit o mesmo sempre esta retornando nullo ao efetuar o logout.
Metodo Logout
public boolean logout() throws LoginException {
// remove o usuario e as roles do principals
subject.getPrincipals().removeAll(roles);
subject.getPrincipals().remove(user);
return true;
}
Efetuei o teste de retorno usando request e funciona normalmente.
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
System.out.println("Nome do Usuario Logado Remote User: " + request.getRemoteUser());
System.out.println("Nome do Usuario Logado : " + request.getUserPrincipal());
Metodo Commit
public boolean commit() throws LoginException {
SimpleGroup userRoles = new SimpleGroup("Roles");
// adiciona o usuario no principals
if (getUser() != null && !subject.getPrincipals().contains(user)) {
subject.getPrincipals().add((Principal) user);
}
// adiciona as roles no principals
if (getRoles() != null) {
Iterator it = getRoles().iterator();
while (it.hasNext()) {
Role role = (Role) it.next();
if (!subject.getPrincipals().contains(role)) {
//subject.getPrincipals().add(role);
userRoles.addMember(role);
}
}
subject.getPrincipals().add(userRoles);
}
commitSucceeded = true;
return true;
}
Alguem ja passou por isto ou sabe como resolver, agradeço.
Abcs
