我使用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