好好編程-物流項目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"%>