我使用Spring Security的3.1.X和努力實現以下情形:重定向到登錄的isFullyAuthenticated()的URL,然後,再次
- 一頁固定與isFullyAuthenticated()
- 的當前用戶只與認證記住,所以沒有充分驗證的
- 用戶導航到這充分驗證的頁面 - 這應該不允許(這不是)
- 然而,用戶不應該得到403頁 - 相反,應提示用戶通過登錄窗體
- 登錄後登錄,用戶應該被允許繼續他先前請求的頁面,因爲現在他的完全驗證的用戶
我的春季安全配置是:
<http use-expressions="true">
<intercept-url pattern="/admin/full_auth_only.html" access="isFullyAuthenticated()" />
<form-login login-page="/login.html" default-target-url="/authenticated.html" />
<logout />
<remember-me key="someAppKey" />
</http>
我嘗試添加:
<access-denied-handler error-page="/login.html" />
然而,現在的問題是,訪問該頁面的時候,我確實是由登錄表單的提示,只有網址不符合登錄;相反,它是完全認證頁面的URL:
http://localhost:8080/spring-security/admin/full_auth_only.html
然後打破了身份驗證過程,試圖訪問(無效)URL時失敗: http://localhost:8080/spring-security/admin/j_spring_security_check
這應該是:
http://localhost:8080/spring-security/j_spring_security_check
對此的任何幫助表示讚賞 - 我認爲這個用例非常常見,所以我寧願使用名稱空間支持而不是自定義方向。
謝謝。
Eugen。