2012-05-13 38 views
0

jboss 5.1 我有一個應用程序(戰爭)部署到代理服務器。
我在jboss deploy目錄中放置了一個註銷servlet,並將其映射到server/default/deployers/jbossweb-deployer/web.xml中,以便任何已部署的應用程序都可以使用它。 我們希望用戶能夠使用基本URL來訪問網站:與網址別名的空會話

http://ourAwesomeSite/ 

VS戰爭名稱:

http://ourAwesomeSite/ourAwesomeApp.home.seam 

要做到這一點,我添加了此部署/ ROOT.war /指數。 html:

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

但現在我的註銷servlet不再正常工作。

在doGet方法會話中始終爲空,所以我無法使會話無效。用戶註銷,並且他們的當前會話不會失效,任何登錄後(除非瀏覽器關閉)的用戶都會獲得前一個用戶的會話。 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"); 

     } 

服務器/默認/部署者/ jbossweb-部署/ 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

,你應該尋找在設置虛擬主機,而不是重定向到另一個網絡的應用page.Please找到Setup Virtual Hosts

+0

感謝名單Phani,我擺脫ROOT.war並設置'<上下文根>/'在我們的應用程序的jboss-web.xml中。這工作,但不知道爲什麼。還有一個問題,設置context-root使用原始url取消了訪問權限,所以用戶可以通過'http:// ourAwesomeSite /'而不是'http:// ourAwesomeSite/ourAwesomeApp'訪問我們是否有一種方法可以配置它兩者都會工作?我支持虛擬主機的apache服務器。 – gebuh

+0

嗯,我沒有嘗試,但我敢肯定,這將允許我們在默認情況下。 – Phani