15

Spring Security 3.0.2 を使用してログイン/ログアウト システムを実装しました。すべて問題ありませんが、次の 1 つの点だけが問題です。 logout-success-url の代わりに -session-url (以前は正しく行われていた)。

この動作を回避する方法はありますか?

これは私の構成です:

<http use-expressions="true" auto-config="true">
        [...some intercept-url's...]

    <form-login login-page="/login" authentication-failure-url="/login?error=true"
            login-processing-url="/login-submit" default-target-url="/home"
            always-use-default-target="true" />

    <logout logout-success-url="/home?logout=true" logout-url="/login-logout" />

    <session-management invalid-session-url="/home?invalid=true" />
</http>

どうもありがとう。

4

2 に答える 2

8

デフォルトでは、ログアウト プロセスは最初にセッションを無効にするため、セッション管理が無効なセッション ページにリダイレクトされます。invalidate-session="false" を指定すると、この動作が修正されます。

<sec:logout logout-success-url="/logout" invalidate-session="false" 
delete-cookies="JSESSIONID" />
于 2013-01-03T00:51:16.730 に答える
4

logoutタグのlogout-url属性invalid-session-urlをsession-managementの属性と混同しないでください。

後者はログアウトアクションを実行するためのURLであり、前者はログアウトアクション時に転送されるURLです。

つまり、ログアウトボタンを作成するときは、そのボタンのURLがlogout-url値になります。これで、ログアウトが完了すると、Spring Securityがデフォルトで、メインアプリケーションのルートアプリパスをレンダリングしますhttp://yourserver:yourport/yourwebapp/。このパスは。によってオーバーライドされinvalid-session-urlます。したがって、ログアウトすると、そこに転送されます。

要約すると、要求している動作が必要ない場合は、invalid-session-url属性を使用しないでください。お役に立てば幸いです。

于 2010-07-16T19:05:08.277 に答える