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