【问题标题】:spring security xml explanationspring security xml解释
【发布时间】:2014-05-09 15:04:44
【问题描述】:
我是 Spring Security 的新手。我想了解以下几行对我的 Web 应用程序的作用
<security:http>
<security:intercept-url pattern="/**" access="ROLE_USER" />
<security:form-login />
<security:logout />
</security:http>
据我所知
- intercept-url 表示当收到对位置与模式属性中指定的模式匹配的任何资源的请求时,显示表单登录。
- form-login 表示给我默认的表单登录
- 注销意味着给我默认表单注销
如果以上几点是错误的/不充分的,请更正。另外,有人能解释一下access="ROLE_USER" 是做什么的吗?
【问题讨论】:
标签:
spring
spring-security
aop
【解决方案1】:
- 是的。对于每个
intercept-url,Spring Security 将检查是否有登录用户以及他/她是否具有访问 url 所需的角色。在您的情况下,您匹配所有请求。请注意,如果您有多个intercept-url,它们将按照它们在配置中写入的顺序进行评估(如果您将更宽的intercept-url 放在某个较窄的intercept-url 之前,则不会评估后者)。
2,3。你没看错。
要了解访问属性,您必须了解身份验证管理器和提供者。例如,您可以:
<authentication-manager>
<authentication-provider>
<user-service>
<user name="myuser" password="mypass" authorities="ROLE_USER" />
<user name="myadmin" password="mypass" authorities="ROLE_ADMIN" />
</user-service>
</authentication-provider>
</authentication-manager>
(还有其他身份验证提供程序,用于 JDBC、LDAP...)
如果添加另一个拦截网址:
<security:intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
它将由 myadmin 访问,但不能由 myuser 访问。
【解决方案2】:
只有在其授予权限中具有 ROLE_USER 的用户才能访问该资源。