Websphere 6.1 JAAS Logout
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ò.
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