好好编程-物流项目14【授权管理-shiro实现】
上篇文章实现类基于Shiro的认证操作,本文来实现下授权操作。
授权
Shiro授权原理及细节内容欢迎参考如下链接
https://dpb-bobokaoya-sm.blog.csdn.net/article/details/86652418
1.获取用户对应的权限
本项目中我们的权限就只涉及到角色,没有再细粒度到菜单,感兴趣的可以自己可扩展实现下。
IUserService方法
/** * 根据用户编号获取对应的权限信息 * @param userId * @return */ public List
1
2
3
4
5
6
7
UserServiceImpl实现
@Override public List
1
2
3
4
5
RoleMapper接口中定义方法
List
1
RoleMapper映射文件中添加sql
1
2
3
4
5
6
7
2.授权方法
修改MyRealm中授权的方法
/** * 授权的方法 */ @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { // 获取认证的信息 User user = (User) principals.getPrimaryPrincipal(); // 获取登录用户对应的权限 List
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
3.SpringMVC添加配置
1
2
3
4
5
6
4.数据准备
创建一个账号分配对应的角色用来测试。
5.限制权限
// 当前登录用户需要"管理员角色才能访问" @RequiresRoles("管理员") @RequestMapping("/queryPage") public String queryPage(UserDto dto,Model model){ PageInfo
1
2
3
4
5
6
7
8
用没有"管理员"角色的访问测试
用具有访问权限的账号登录
有权的访问成功。
解决没有访问权限的跳转问题。
新建一个没有权限的跳转页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>