spring secruity 入门学习(Authorization授权访问页面控制)

摘要: 通过前面的学习,已经知道初步用数据库来管理用户的权限,一个最简单的例子,我们用了ROLE_USER 这个角色来控制访问的页面。但在实际应用中,并不是只有这样一个角色的,在一个系统中有多个角色,比如用普通用户,有超级用户,有系统管理员,等等。

通过前面的学习,已经知道初步用数据库来管理用户的权限,一个最简单的例子,我们用了ROLE_USER 这个角色来控制访问的页面。但在实际应用中,并不是只有这样一个角色的,在一个系统中有多个角色,比如用普通用户,有超级用户,有系统管理员,等等。所以在这个例子中,我们加入一个角色ROLE_ADMIN, 顾名思义,管理员角色,只有管理员角色才能访问管理页面。为了实现这个功能,我们需要在上一个例子的基础上做一些修改,首先是在数据库中准备初始数据:

Insert INTO users (USER_ID, USERNAME,PASSWORD, ENABLED)
VALUES (101, 'admin', '123456', TRUE);

Insert INTO user_roles (USER_ROLE_ID, USER_ID,AUTHORITY)
VALUES (2, 101, 'ROLE_ADMIN');

也就是增加了一个管理员用户,并同时增加了管理员用户对应的角色为ROLE_ADMIN. 下面配置security.xml 是重点,也是需要注意的地方.

		
		
		
		
	

	
		
			
		
	


这里配置的form-login 默认登录后 访问的页面是 /app/admin , 但是访问 /app/admin 页面的权限是 ROLE_ADMIN , 所以当用户是 yihaomen 时,它的角色为 ROLE_USER, 应该是不能访问这个页面的,spring security 应该抛出 403 错误, 运行程序,检查结果:



说明 ROLE_USER 角色并不能访问 ROLE_ADMIN 所能访问的页面,也就是没有得到授权, 如果用 admin 登录呢,应为 admin 是属于 ROLE_ADMIN 这个角色的,应该能访问,用admin 登录查看结果.



在程序中,增加了一个admin 所需要的controller, 整个程序代码提供下载,省略jar包,可以参考前面的文章了解需要那些jar 包:


spring security Authorization control source code download

上一篇: spring secruity 入门学习(数据库方式配置用户登录)
下一篇: spring secruity 教程自定义 403 页面

Avatar

htflwz.com 评论于: 2013-12-23

正需要这方面的教程知识,谢谢了
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号