jboss 5.1 我有一个应用程序(战争)部署到代理服务器。
我在 jboss 部署目录中放置了一个注销 servlet,并将其映射到 server/default/deployers/jbossweb-deployer/web.xml 以便任何部署的应用程序都可以使用它。我们希望用户能够使用基本 url 访问该站点:
http://ourAwesomeSite/
与战争名称:
http://ourAwesomeSite/ourAwesomeApp.home.seam
为此,我将其添加到 deploy/ROOT.war/index.html:
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=/ourAwesomeApp"/>
但现在我的注销 servlet 不再正常工作。
在 doGet 方法中 session 始终为 null,因此我不能使 session 无效。用户注销,他们当前的会话不会失效,之后登录的任何人(除非浏览器关闭)都会获得前一个用户的会话。注销Servlet:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException,
ServletException {
System.out.println("********************** logout servlet");
HttpSession session = request.getSession(false);
// session is always null
if (!this.isSessionInvalid(request) && session != null) {
System.out.println("invalidating user session ... maybe");
session.invalidate();
}
System.out.println("redirecting to SSO logout");
response.sendRedirect("https://ssologoutpage/logout.html");
}
server/default/deployers/jbossweb-deployer/web.xml 条目和映射:
<servlet>
<servlet-name>LogoutServlet</servlet-name>
<servlet-class>com.whatev.log.security.session.management.LogoutServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LogoutServlet</servlet-name>
<url-pattern>/web/logout.html</url-pattern>
<url-pattern>/logout.html</url-pattern>
</servlet-mapping>
我不确定请求会话如何设置为空。有人有想法么?