1

Spring MVC-Hibernate を使用して開発された Java Web アプリケーションに取り組んでいます。Glassfish-3.1.2 および Tomcat-6/7 にデプロイすると、アプリケーションは正常に動作します。ただし、アプリケーションがAppFog (Web サイト ホスティング アプリケーション)にデプロイされている場合、セッションを保持できません。つまり、ユーザーはアプリケーションにログインしますが、リンクをクリックすると、ログイン ページにリダイレクトされます。

これは、セッションの有効期限が切れた場合にアプリケーションをログイン ページにリダイレクトするリクエストごとにユーザー セッションをチェックするインターセプター (SessionInterceptor) を作成したために発生します。以下は、SessionInterceptor クラスの preHandle() メソッドで記述したコードです。

@Override
public boolean preHandle(HttpServletRequest request,
        HttpServletResponse response, Object handler) throws Exception {
    HttpSession session = request.getSession();
    if(!(handler instanceof HomeController || handler instanceof ForgetPasswordController)) {
        if(session.getAttribute("user") == null) {
            response.sendRedirect(request.getContextPath()+"/"+redirectMapping+"?msg=e");
            return false;
        } else {
            return true;
        }
    } else {
        return true;
    }
}

これが AppFog で発生している理由はわかりません。どんな助けでも感謝します。前もって感謝します!

4

1 に答える 1