0

我在 TAM WebSEAL 6.1 后面的 WAS 7 上部署了一个 Web 应用程序,使用 TAI、LTPA2 单点登录用户登录,并且 SSO 运行良好。在注销时,HTTPSession.invalidate()被调用并被https://<webseal url>/pkmslogout 调用。

问题是:注销后,WebSEAL 会话似乎已清除,但 WebSphere JSESSIONID cookie 仍然存在。此外,当使用新用户登录时,WAS 上的会话缓存具有旧用户信息。

有谁知道,如果我正在做正确的注销实施?SSO 设置中是否有任何其他配置可以保护此会话缓存在会话无效时被删除?

注销代码的实现:下面代码中的 logOutURL 是 WebSEAL pkmslogout 链接

public void logout(ActionEvent event ){
    String logOutURL = (String) event.getComponent().getAttributes().get(ATTRIBUTE_NAME_LOGOUT_URL);        
    getSession().invalidate();
    try {
        FacesContext c = FacesContext.getCurrentInstance();
        if( c!= null )
        {
            c.getExternalContext().redirect(logOutURL);
        }
    } catch (IOException e) {
        log.error( "Exception while processing logout redirect.", e );
    }
}

谢谢你。

4

2 回答 2

0

从其他论坛了解到,来自 WebSphere 的“ibm_security_logout”将有助于撤销会话。详情:http ://www-01.ibm.com/support/docview.wss?uid=swg21254556

我还没有尝试这个,我会保持论坛发布。

于 2013-04-03T18:10:41.587 回答
0

在 WebSphere 8.5.5(也可能在旧版本中)上,您可以设置自定义属性。

安全 -> 全局安全 -> 自定义属性

com.ibm.ws.security.web.logoutOnHTTPSessionExpire=true

于 2015-01-27T11:22:34.710 回答