我对 spring 安全性的配置和我使用的 InvalidSessionStrategy 实现有一个小问题。
假设用户连接到应用程序并正在查看页面:/userArea/thePage
并且他们的会话超时,用户将首先被重定向到页面/signin
。然后,在成功登录后,他们将被重定向到他们个人区域( )的主页,而我希望他们在会话超时时回到他们所在的位置,即./userArea
/userArea/thePage
这可能吗?
如果是这样,我需要如何更改我的配置/应用程序?
这是我当前的配置:
<beans:bean id="sessionManagementFilter" class="org.springframework.security.web.session.SessionManagementFilter">
<beans:constructor-arg name="securityContextRepository" ref="httpSessionSecurityContextRepository" />
<beans:property name="invalidSessionStrategy" ref="simpleRedirectInvalidSessionStrategy" />
</beans:bean>
<beans:bean id="simpleRedirectInvalidSessionStrategy" class="org.springframework.security.web.session.SimpleRedirectInvalidSessionStrategy">
<beans:constructor-arg name="invalidSessionUrl" value="/signin" />
<beans:property name="createNewSession" value="true" />
</beans:bean>
<http auto-config="true" use-expressions="true">
<custom-filter ref="sessionManagementFilter" before="SESSION_MANAGEMENT_FILTER" />
<form-login login-processing-url="/resources/j_spring_security_check" login-page="/signin" authentication-failure-url="/signin?login_error=t" default-target-url="/userArea" />
<logout logout-url="/resources/j_spring_security_logout" logout-success-url="/signin" />
...
编辑 1:让我更好地说明我的要求:
- 当用户会话超时时,我希望将用户重定向到保存的请求(他们在重定向到登录页面之前请求的 url)。
- 但是,当他们最初使用应用程序登录时,我希望他们被重定向到个人区域的主页。
我的要求是否可以使用 Carsten 建议的解决方案来实现(见下文)?