好好編程-物流項目14【授權管理-shiro實現】

      網友投稿 708 2022-05-30

      上篇文章實現類基于Shiro的認證操作,本文來實現下授權操作。

      授權

      Shiro授權原理及細節內容歡迎參考如下鏈接

      https://dpb-bobokaoya-sm.blog.csdn.net/article/details/86652418

      1.獲取用戶對應的權限

      本項目中我們的權限就只涉及到角色,沒有再細粒度到菜單,感興趣的可以自己可擴展實現下。

      IUserService方法

      /** * 根據用戶編號獲取對應的權限信息 * @param userId * @return */ public List queryRoleByUserId(int userId);

      1

      2

      3

      4

      5

      6

      7

      UserServiceImpl實現

      @Override public List queryRoleByUserId(int userId) { return roleMapper.queryRoleByUserId(userId); }

      1

      2

      3

      4

      5

      RoleMapper接口中定義方法

      List queryRoleByUserId(int userId);

      1

      RoleMapper映射文件中添加sql

      1

      2

      3

      4

      5

      6

      7

      2.授權方法

      修改MyRealm中授權的方法

      /** * 授權的方法 */ @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { // 獲取認證的信息 User user = (User) principals.getPrimaryPrincipal(); // 獲取登錄用戶對應的權限 List roles = userService.queryRoleByUserId(user.getUserId()); SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); for (Role role : roles) { // 將用戶具有的角色保存到SimpleAuthorizationInfo對象中 info.addRole(role.getRoleName()); } return info; }

      1

      2

      3

      4

      5

      6

      7

      8

      好好編程-物流項目14【授權管理-shiro實現】

      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 pageModel = userService.queryPage(dto); model.addAttribute("pageModel", pageModel); return "user/user"; }

      1

      2

      3

      4

      5

      6

      7

      8

      用沒有"管理員"角色的訪問測試

      用具有訪問權限的賬號登錄

      有權的訪問成功。

      解決沒有訪問權限的跳轉問題。

      新建一個沒有權限的跳轉頁面

      <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 無標題文檔

      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

      SpringMVC中配置

      redirect:/failed redirect:/login.jsp

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      用沒有權限的賬號測試

      權限標簽在具體的業務場景中使用~

      智慧物流

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Laravel的三種安裝方法總結
      下一篇:Python讀取excel中的圖片
      相關文章
      亚洲第一页综合图片自拍| 91亚洲国产成人精品下载| 国产亚洲精品91| 国产亚洲美女精品久久久久狼| 亚洲一区二区三区免费观看| 久久久久亚洲AV无码专区桃色| 国产精品亚洲综合五月天| 国产亚洲一区二区手机在线观看| 亚洲综合av一区二区三区 | 亚洲一区中文字幕在线电影网| 久久久国产精品亚洲一区| 亚洲片一区二区三区| 亚洲国产成人无码AV在线影院| 亚洲国产精品久久久久久| 亚洲精品国产精品国自产观看| 久久亚洲精品国产精品婷婷| 亚洲一区二区三区首页| 亚洲综合无码一区二区| 久久久无码精品亚洲日韩京东传媒| 亚洲美女中文字幕| 久久亚洲精品成人| 亚洲乱码中文字幕久久孕妇黑人| 亚洲色自偷自拍另类小说| 亚洲一区二区三区在线视频| 国产专区一va亚洲v天堂| 亚洲国产精品13p| 久久久久久久亚洲精品| 亚洲国产精品嫩草影院在线观看| 亚洲av不卡一区二区三区| 91亚洲精品第一综合不卡播放| 亚洲中文无码av永久| 国产午夜亚洲精品| 亚洲av乱码中文一区二区三区| 亚洲香蕉久久一区二区三区四区| 亚洲国产精品免费观看| 久久久久亚洲国产AV麻豆| 亚洲色无码专区一区| 亚洲国产日韩精品| 国产亚洲综合精品一区二区三区| 亚洲精品视频在线看| 亚洲成A人片在线观看无码不卡|