0

jboss 5.1プロキシサーバーにアプリケーション(war)をデプロイしています。
ログアウトサーブレットをjbossデプロイディレクトリに配置し、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"/>

しかし、ログアウトサーブレットが正しく機能しなくなりました。

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に設定されているのかわかりません。誰かアイデアはありますか?

4

1 に答える 1

1

別のWebアプリケーションページにリダイレクトするのではなく、仮想ホストのセットアップを検討する必要があります。仮想ホストのセットアップを見つけてください。

于 2012-05-14T10:00:20.607 に答える