I have two web application A and B with SSO on JBoss AS 7.1.1.
jboss-web.xml of application A is:
<jboss-web> <context-root>/A</context-root> <security-domain>MySecurityDomain</security-domain> <valve> <class-name>org.apache.catalina.authenticator.SingleSignOn</class-name> </valve> </jboss-web>
jboss-web.xml of application B is:
<jboss-web> <context-root>/B</context-root> <security-domain>MySecurityDomain</security-domain> <valve> <class-name>org.apache.catalina.authenticator.SingleSignOn</class-name> </valve> </jboss-web>
When I login in A, I login also in B, it works.
If I logout in A, I logout also in B, it works.
If I login in A and I logout in B, it doesn't work.
My java function for logout, using primefaces, is:
public void doLogout() {
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
if (session != null) {
session.invalidate();
}
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
try {
request.logout();
} catch (ServletException ex) {
Logger.getLogger(LoginController.class.getName()).log(Level.SEVERE, null, ex);
}
}