我使用Spring Security 3.0.7Spring Security認證
我在配置文件中的網絡安全規則,允許只是爲了驗證的用戶訪問某些網頁:
<intercept-url pattern="/faces/paginas/secured/**" access="isAuthenticated()"/>
當匿名用戶試圖訪問任何這些頁面,呈現登錄表單,以便輸入用戶名和密碼。
這是默認行爲。
但有沒有什麼辦法來呈現自定義頁面而不是登錄表單? (例如,一個頁面只顯示類似「拒絕訪問」的消息)
但我認爲AccessDeniedHandler,你在它制定的錯誤頁面,是要求未authorizated(即,進行身份驗證,但不具有訪問資源所需的角色的用戶),ISN」它呢?但是我的情況是不同的(沒有通過身份驗證的用戶並嘗試訪問僅限經過身份驗證的用戶訪問的資源)。我認爲在我的情況下不會重定向到您所說的頁面。 – choquero70 2011-12-23 08:58:14
確實,你是對的。在這種情況下,我有一個想法,認證用戶可以獲得某種角色,即ROLE_GUEST,但據我所知,Spring Security不提供這種解決方案,所以必須通過實現自己的類來擴展安全系統。 – 2011-12-23 12:05:03
對於未經過身份驗證的用戶,Spring Security具有默認角色。這是IS_AUTHENTICATED_ANONYMOUSLY角色,但對我的目的沒有用處。然而,我在考慮如果我改變web安全規則,使用所有經過身份驗證的用戶擁有的角色(例如ROLE_USER),而不是使用「isAuthenticated()」,那麼如果未經過身份驗證的用戶試圖訪問它,他/她應該被重定向到自定義的accessDenied頁面,而不是登錄頁面。那將是我想要的。我必須嘗試一下。 – choquero70 2011-12-24 01:41:43