Pergunta

Eu tenho uma aplicação da web em 6.1 usando o JAAS que já está funcionando. Autentica e autoriza de maneira ordenada. Mas minha página de logout não está desativando o diretor. Este aplicativo funciona corretamente no JBoss e no Glasfish, mas não em.

Minha página de logout é apenas um JSP simples com este conteúdo.

<%System.out.println("principal is not null:"+(null != request.getUserPrincipal()));

if (null != request.getSession(false))
request.getSession(false).invalidate();
%><jsp:include page="/index.html" />

Estou esquecendo de algo? Eu preferia não usar nenhuma API específica da WebPShere, mas se for absolutamente necessário, eu o farei.

Foi útil?

Solução

Para fazer logout com sucesso, esse snippet de código também é necessário:

try {
        com.ibm.websphere.security.WSSecurityHelper.revokeSSOCookies(request, response);
     } catch(Exception e) {
        // catch all possible exceptions if you want or handle them separately
        out.println("JAASLogoutServlet: logout Exception = " + e.getMessage());
        throw new ServletException(e);
}

Outras dicas

A IBM também implementa um formulário chamado IBM_Security_Logout. Eu o uso no WebSphere 7.0, mas existe na versão anterior. Você pode encontrar mais detalhes minha resposta para minha pergunta:

Como faço para fazer o logout do Java EE Container Gerencied Security?

No WebSphere 8.5.5 (talvez em versões mais antigas), você também pode definir uma propriedade personalizada.

Segurança -> Segurança Global -> Propriedades personalizadas

com.ibm.ws.security.web.logoutOnHTTPSessionExpire=true   
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top