2、access=”hasRole(‘ROLE_ADMIN’)是什么意思?
hasRole 方法及 permitAll()方法都来自于类:org.springframework.security.web.access.expression.WebSecurityExpressionRoot。此类中及其父类中定义
了若干的方法,提供验证功能。它的类层次结构为:
在类 SecurityExpressionRoot 中提供了若干的验证方法如下:
关于更多请查看它的源代码。
3、<authentication-manager/>元素的作用是什么?
此元素提供用户登录认证,及提供角色列表。可以在配置文件中直接配置用户名和密码,也可以配置从数据库加载用户和。这是我们以后动
大手术的地方。
此元素定义后,默认的 id 值为:org.springframework.security.authenticationManager 且不建议修改,因为<http/>元素默认引
用它。但我们可以给它取一个别名即 alias=”authenticationManager”。
4、<user-service>元素
此元素是专门提供用户名和密码的地方。目前我们并没有给用户名进行加密。以后我们可选的可以给密码 MD5 加密。这是以后我们要修改
的地方。只要提供一个能可以从数据库读取用户名和密码的 userDetailService 即可以从数据库加载用户。
注意,在上面的配置中,我们让 admin 用户,拥有了 ROLE_ADMIN,ROLE_USER 两个角色,所以 admin 用户可以访问所有用户的资源。而
jack 不可以访问 admin 的资源。一旦访问,将转到访问被拒绝页面上去。
<user-service>
<user name="admin" password="1234" authorities="ROLE_ADMIN,ROLE_USER"/>
<user name="jack" password="1234" authorities="ROLE_USER"/>
</user-service>
5、一些默认的配置
在<http/>配置中,包含了非常多的默认配置项目。只要用户不配置, spring 就会选择自己的默认配置,这倒是非常符合 spring 的默认配置原
则。如:
提供默认的登录页面、提供默认的登录错误以后的返回页面、提供默认的错误提示等。