0

我有一个使用 JAAS 的 WAS 6.1 上的 WebApplication 已经在工作。认证授权有序进行。但是我的注销页面没有取消对主体的授权。此应用程序在 JBoss 和 Glasfish 上正常工作,但在 WAS 上不能正常工作。

我的注销页面只是一个包含此内容的简单 JSP。

<%System.out.println("principal is not null:"+(null != request.getUserPrincipal()));

if (null != request.getSession(false))
request.getSession(false).invalidate();
%><jsp:include page="/index.html" />

我错过了什么吗?我宁愿不使用 Webpshere 的任何特定 API,但如果绝对需要,我会的。

4

3 回答 3

2

要成功注销,还需要此代码段:

try {
        com.ibm.websphere.security.WSSecurityHelper.revokeSSOCookies(request, response);
     } catch(Exception e) {
        // catch all possible exceptions if you want or handle them separately
        out.println("JAASLogoutServlet: logout Exception = " + e.getMessage());
        throw new ServletException(e);
}
于 2009-12-17T21:17:09.353 回答
0

IBM 还实现了一个名为 ibm_security_logout 的表单。我一直在 websphere 7.0 上使用它,但它存在于以前的版本中。您可以找到更多详细信息我对我的问题的回答:

如何从 Java EE 容器管理的安全性中注销?

于 2010-09-02T17:42:24.907 回答
0

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

Security -> Global Security -> Custom properties

com.ibm.ws.security.web.logoutOnHTTPSessionExpire=true   
于 2015-01-27T11:18:47.043 回答