Не удалось сохранить сеанс в AppFog с помощью Spring

Я работаю над веб-приложением Java, разработанным с использованием Spring MVC-Hibernate. Приложение отлично работает при развертывании на Glassfish-3.1.2 и Tomcat-6/7. Однако, когда приложение развернуто в AppFog (приложение для размещения веб-сайтов), оно не может удерживать сеанс, т. е. пользователь входит в приложение, но когда он щелкает любую ссылку, он перенаправляется обратно на страница входа.

Это происходит потому, что я создал перехватчик (SessionInterceptor) для проверки сеанса пользователя при каждом запросе, который перенаправляет приложение на страницу входа в случае истечения срока действия сеанса. Ниже приведен код, который я написал в методе preHandle() моего класса SessionInterceptor:

@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. Любая помощь с благодарностью. Заранее спасибо!


person Gurminder Singh    schedule 19.09.2013    source источник
comment
Привет, Гурминдер, у меня точно такие же проблемы, как и у тебя, с appfog и spring. В моем случае, когда я вхожу в систему и перехожу на другую страницу или загружаю ресурс, jsessionid меняется (каждые 1-5 запросов), поэтому моя сессия воссоздается. Вы нашли решение? Возможно, это ошибка appfog.   -  person maqjav    schedule 28.09.2013
comment
Еще нет @maqjav, и ни у кого нет ответа на stackoverflow и в других местах. Я считаю, что вы правы. Может быть ошибка appfog.   -  person Gurminder Singh    schedule 28.09.2013
comment
Я открыл тикет в Appfog, посмотрим, получу ли я ответ, хотя для бесплатной учетной записи потребуется некоторое время, чтобы получить ответ. Я буду держать вас в курсе.   -  person maqjav    schedule 28.09.2013
comment
Хорошо @maqjav. Спасибо, что уделили свое время!   -  person Gurminder Singh    schedule 28.09.2013
comment
Привет, @Гурминдер Сингх. Я получил ответ от поддержки, и они обострили проблему, чтобы сделать некоторые тесты. Как только я получу ответ, я дам вам знать.   -  person maqjav    schedule 06.10.2013
comment
Хорошо @maqjav, спасибо, что держите меня в курсе! :)   -  person Gurminder Singh    schedule 06.10.2013
comment
знаешь что? он делает это и в php... примерно 1-5 PHPSESSID сбрасывается и заменяется новым. В результате состояние теряется, и я злюсь! ЧЕРТ!   -  person nourdine    schedule 20.01.2014


Ответы (1)


Какую спецификацию сервлета поддерживает AppFog? Если я не ошибаюсь, spring mvc Interceptor поддерживается на сервлете> = 2.3

person Angelo Immediata    schedule 19.09.2013
comment
Я не знаю подробностей, но, похоже, AppFog поддерживает только спецификацию до 2.5. Однако, по моему мнению, перехватчики работают нормально, потому что иначе приложение не должно было бы перенаправлять на домашнюю страницу. - person Gurminder Singh; 20.09.2013