以上省略了创建对象及DAO等基本操作
五 、权限控制
以上内容我们只解决了用户登录问题,但是实际开发中仅仅完成用户登录是不够的,我们还需要用户授权及授权验证。由于我们已经将用户信息存储到数据库里了,那么姑且我们也将权限信息存储在数据库吧。
1. 准备数据库表及测试数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
|
- role:角色信息表,permission权限信息表,user_r_role用户所属角色表,role_r_permission角色拥有权限表,user_r_permission用户拥有权限表。
- 由于用户有所属角色且角色是有权限的,用户同时又单独拥有权限,所以用户最终拥有的权限取并集。
- 用户admin最终拥有角色adminRole以及权限:permission1、permission2、permission3、permission4
- 用户guest最终拥有角色guestRole以及权限:permission3、permission4
2. Dao、Service
dao增加方法:根据用户名查角色以及根据用户名查权限
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
service增加方法:根据用户名查角色以及根据用户名查权限
1 2 3 4 5 6 7 |
|
3. WebSecurityConfig
(1)调整public UserDetailsService userDetailsService()方法,在构建用户信息的时候把用户所属角色和用户所拥有的权限也填充上(最后return的时候)。
1 2 3 4 5 6 7 8 9 10 11 12 13 |