Завершение сеанса выхода из системы / выхода из системы с защитой весны

Я использую Spring / Spring-Security 3.1 и хочу предпринять некоторые действия, когда пользователь выходит из системы (или если время сеанса истекло). Мне удалось выполнить действие для выхода из системы, но для тайм-аута сеанса я не могу заставить его работать.

В файле web.xml указан только ContextLoaderListener (может ли это быть проблемой?) И, конечно, DelegatingFilterProxy.

Я использую автоконфигурацию вот так.

    <security:http auto-config="false" use-expressions="false">
    <security:intercept-url pattern="/dialog/*"
        access="ROLE_USERS" />
    <security:intercept-url pattern="/boa/*"
        access="ROLE-USERS" />
    <security:intercept-url pattern="/*.html"
        access="ROLE-USERS" />

    <security:form-login login-page="/auth/login.html"
        default-target-url="/index.html" />
    <security:logout logout-url="/logout"
         invalidate-session="true"
        delete-cookies="JSESSIONID" success-handler-ref="logoutHandler" />
</security:http>

<bean id="logoutHandler" class="com.bla.bla.bla.LogoutHandler">
    <property name="logoutUrl" value="/auth/logout.html"/>
</bean>

Обработчик выхода из системы вызывается, когда пользователь нажимает кнопку «Выйти», что приведет к некоторым вызовам базы данных.

Но как мне справиться с таймаутом сессии ???

Один из способов справиться с этим - ввести имя пользователя в сеанс, когда пользователь входит в систему, а затем использовать обычный httpsessionlistener и делать то же самое по истечении времени ожидания сеанса.

Существует ли аналогичный способ с безопасностью Spring, так что когда Spring обнаруживает, что сеанс истекает, я могу подключиться к нему, получить доступ к Аутентификации и получить оттуда UserDetails и выполнить очистку.

Ответы на вопрос(3)

Ваш ответ на вопрос