注销/会话超时捕获弹簧安全性
2022-09-01 07:20:06
我正在使用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并进行清理。