我在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 );
}
}
谢谢。
答案 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