0

Spring Security を使用する Spring MVC プロジェクトがあります。私はどのように機能するのだろうかと思っていますj_spring_security_logout。次のようなビューで定義されたログアウト リンクがあります。

<a href="<c:url value="/j_spring_security_logout" />">Logout</a> 

私のspring-security.xml中で私はこれを定義しました:

<form-login login-page="/login" default-target-url="/wellcome" authentication-failure-url="/loginfailed"  />
<logout logout-success-url="/logout" logout-url="/j_spring_security_logout" />
<session-management invalid-session-url="/invalidsession" />

ログアウトをクリックすると にリダイレクトされると思っていました/logoutが、代わりにinvalid-session-url、つまりにリダイレクトされます/invalidsession。はlogout-success-url無視されます。

ただし、 を削除するsession-managementと、ログアウトすると実際に にリダイレクトされ/logoutます。

4

2 に答える 2

1

これは、Spring Security リファレンス マニュアルで説明されています。

ログアウト時にセッション Cookie が削除されない限り、セッション有効期限機能を実際に使用することはできません。

于 2012-07-19T16:29:54.337 に答える
0

これだけを使用すると、動作するはずです(なしでlogout-url):

<logout logout-success-url="/logout" />

ログアウトするとセッションが無効になるため、ログアウトとセッション管理の無効なセッション URL の両方を使用すると問題が発生する可能性があると思います。

追加の質問ごとに更新してください。これはどうですか:

<security:logout logout-success-url="/logout?displayLogout=1" />
<security:session-management invalid-session-url="/logout?displayLogout=0" />

そして、あなたの見解で:

<c:if test="${param.displayLogout == 0}">
    <h2>Your session has timed out.</h2>
</c:if>

更新#2、ローカルで試してみました。ログアウトすると、セッションが無効になり、構成invalid-session-urlで指定した場所にリダイレクトされsession-managementます。

今、ソリューションに本当に興味があります。

于 2012-07-19T10:14:57.330 に答える