Domanda

Ho un WebApplication è stato 6.1 utilizzando JAAS già al lavoro. Autentica e autorizza in modo ordinato. Ma la mia pagina di logout non è rimozione dell'autorizzazione principale. Questa applicazione funziona correttamente su JBoss un on Glasfish, ma non è stato.

La mia pagina di logout è solo una semplice JSP con questo contenuto.

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

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

Mi sto perdendo qualcosa? Vorrei preffer non usare qualsiasi API specifica da Webpshere ma se è assolutamente necessario lo farò.

È stato utile?

Soluzione

Per il logout con successo è necessario anche questo frammento di codice:

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);
}

Altri suggerimenti

IBM implementa anche una forma chiamata ibm_security_logout. Sto usando su WebSphere 7.0, ma esistono nella versione precedente. Potete trovare maggiori dettagli la mia risposta alla mia domanda:

Come faccio a scollegarsi dal container Java EE riuscito sicurezza?

su WebSphere 8.5.5 (magari in versioni precedenti, anche) è possibile impostare proprietà personalizzata.

Sicurezza -> Sicurezza globale -> Proprietà personalizzate

com.ibm.ws.security.web.logoutOnHTTPSessionExpire=true   
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top