スプリング セキュリティの構成と、使用する InvalidSessionStrategy 実装にわずかな問題があります。
ユーザーがアプリに接続してページを表示している/userArea/thePage
とします。セッションがタイムアウトすると、ユーザーは最初にページにリダイレクトされます/signin
。次に、サインインに成功すると、個人用領域のホームページにリダイレクトされます( /userArea
)のに対し、セッションがタイムアウトしたときに元の場所に戻ってほしいと思います/userArea/thePage
。
これは可能ですか?
その場合、config/app をどのように変更する必要がありますか?
これが私の現在の設定です:
<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 が提案したソリューションを使用して実装できますか (以下を参照)?