WebSEAL - WAS 7 - 会话失效无法清除WAS会话缓存

时间:2013-03-12 18:47:14

标签: session websphere logout webseal

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

谢谢。

2 个答案:

答案 0 :(得分:0)

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

我还没试过,我会保持论坛发布。

答案 1 :(得分:0)

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

安全 - &gt;全球安全 - &gt;自定义属性

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