使用url别名的空会话

时间:2012-05-13 02:11:36

标签: java servlets jboss

jboss 5.1 我有一个应用程序(war)部署到代理服务器 我在jboss deploy目录中放置了一个logout servlet,并将其映射到server / default / deployers / jbossweb-deployer / web.xml中,以便任何已部署的应用程序都可以使用它。 我们希望用户能够使用基本网址访问该网站:

http://ourAwesomeSite/

vs战争名称:

http://ourAwesomeSite/ourAwesomeApp.home.seam

为此,我将其添加到deploy / ROOT.war / index.html:

<META HTTP-EQUIV="Refresh" CONTENT="0; URL=/ourAwesomeApp"/>

但现在我的注销servlet无法正常工作。

doGet方法会话中的

始终为null,因此我无法使会话无效。用户注销,他们当前的会话不会失效,任何登录后的人(除非浏览器关闭)都会获得前一个用户的会话。 LogoutServlet:

    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>

我不确定请求会话是如何设置为null的。有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您应该考虑设置虚拟主机而不是重定向到另一个Web应用程序页面。请找到Setup Virtual Hosts