2016-02-24 3 views
0

У меня есть приложение для загрузки весны (1.3.2), в котором я реализовал HttpSessionListener. Я зарегистрировал слушателя из @Configration классаSpring Boot + Spring Session HttpSessionListener не работает

@Configuration 
@EnableRedisHttpSession 
public class ApplicationSessionConfiguration { 

@Bean 
public ServletListenerRegistrationBean<HttpSessionListener> sessionListener() { 
    return new ServletListenerRegistrationBean<HttpSessionListener>(new SessionListener()); 
} 

}

Я отлажена в метод ServletListenerRegistrationBean.onInitialize и слушатель зарегистрировавшись с ServletContext. Проблема в том, что когда я делаю фиктивный вызов REST для приложения, сеанс создается правильно и отправляется обратно в виде файла cookie SESSION, но метод HttpSessionListener.createSession никогда не вызывается. Я не уверен, чего здесь не хватает.

ответ

1

Похоже, что вам еще не нужна функция стабильной сборки. Однако по this ticket это исправлено и доступно в версии 1.1.0 M1 для весенней сессии. Возможно, вы захотите попробовать выпуск 1.1.0.RC1 весенней сессии, чтобы узнать, помогает ли это вам. Точные сведения о том, как это сделать, можно найти: in this doc link

В случае, если релиз 1.1.0.RC1 НЕ является вариантом (или если вы предпочитаете не использовать RC1 по какой-либо причине), вы все равно можете перехватить сеанс и уничтожить события, расширив по умолчанию CookieHttpSessionStrategy с вашей собственной реализацией (например, MyCookieHttpSessionStrategy), а затем переопределив onNewSession (..) и onInvalidateSession (..), чтобы перехватить эти события. Зарегистрируйте MyCookieHttpSessionStrategy как обычный bean-компонент, и вы все настроены (он будет автоматически выбран репозиторием Redis). Это прекрасно работает с сеансами Redis, поэтому я использую эти события в своем веб-приложении весной загрузки таким образом.

Надеюсь, что это поможет!

Смежные вопросы