春季安全中的拦截规则

时间:2014-10-29 07:41:11

标签: spring

Spring安全配置:

intercept-url pattern="/login.jsp*" access="IS_AUTHENTICATED_ANONYMOUSLY"`
intercept-url pattern="/**" access="ROLE_USER" 
form-login login-page='/login.jsp'

我是春天安全的新手。我有一些问题:

  1. " IS_AUTHENTICATED_ANONYMOUSLY"是什么意思?
  2. 为什么会有错误? (我在文档中读到由于无限循环而导致错误。) 如果拦截规则多于评估规则?

3 个答案:

答案 0 :(得分:1)

首先要做的事情总是始终匿名访问您的登录和注册屏幕。 ANONYMOUS =无需认证。如果不这样做将永远不会允许任何用户使用你的应用程序,你的页面将永远加载...也保持你的静态资源(CSS,JS,图像等)远离安全过滤器。在大多数情况下,这些静态资源从不需要安全性

此代码段解释了上述说明:

<security:http pattern = "/css/**" security = "none"/>
    <security:http pattern = "/anonymous/**" security = "none"/>
    <security:http pattern = "/loginpage/**" security = "none"/>
    <security:http pattern = "/forgotpassword/**" security = "none"/>
    <security:http pattern = "/registerpage/**" security = "none"/>
    <security:http pattern = "/js/**" security = "none"/>
    <security:http pattern = "/images/**" security = "none"/>

答案 1 :(得分:0)

IS_AUTHENTICATED_ANONYMOUSLY - 这意味着任何人都可以访问此页面而无需登录您的系统。

ROLE_USER - 表示只有拥有ROLE = ROLE_USER的用户才能访问与您的模式匹配的网址。

如果有更多的拦截规则,则遵循上述相同的规则,逐个但是这个匹配的顺序。如果您的第一个模式与您请求的URL匹配,那么它将不会查找其他模式。因此,在给定的拦截规则中,您需要注意它们的编写顺序。

希望得到这个帮助。

答案 2 :(得分:0)

  

&#34; IS_AUTHENTICATED_ANONYMOUSLY&#34;是什么意思?

这意味着任何人都可以在不登录的情况下访问此页面。

  

为什么会有错误?

您有一个无限循环,因为登录页面不应该是安全的。不应该保护登录页面以便任何人能够输入它的凭证。