HttpSessionListener не работает в моем приложении Spring MVC - PullRequest
0 голосов
/ 30 марта 2020

Я реализовал HttpSessionListener в моем приложении Spring MVC, и он не работает. В моем приложении сессия управляется с помощью Spring Jdb c Session и работает с Spring Security. Из некоторых ответов я прочитал, что Spring jdb c не поддерживает HttpSessionEventPublisher.

В каждом случае сначала я пытался настроить прослушиватель в сети. xml с помощью classi c. Ниже конфигурации:

<!-- BEGIN - IDG - session management -->
<filter>
    <filter-name>springSessionRepositoryFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSessionRepositoryFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>

<session-config>
    <session-timeout>60</session-timeout>
</session-config>
<!-- END - IDG - session management -->

<!-- BEGIN - IDG - security -->
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<!-- END - IDG - security -->

<listener>
    <listener-class>
         it.gov.ali.listener.CustomSessionListener
    </listener-class>

CustomSessionListener реализует HttpSessionListener и его методы sessionDestroyed и sessionCreated.

Теперь, когда я делаю выход из Spring Security, сессия корректно становится недействительной и Сеанс строки в моей базе данных удален, но я не попал в свой пользовательский прослушиватель.

Есть ли особый способ настроить прослушиватель сеанса с пружиной jdb c или я что-то пропустил?

Спасибо всем.

1 Ответ

0 голосов
/ 01 апреля 2020

Если вы используете весеннюю сессию jdb c, HttpSession поддерживается весенней сессией.
Так что, если вы используете зависимость spring-session 2.2.1.RELEASE, посмотрите метод getSession в классе SessionRepositoryFilter в строке номер 314, это может быть полезно, и вы можете переопределить этот класс, чтобы получить желаемые результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...