根据张开涛老师的shiro教程学习过程中 感觉shiro授权这块有点绕 调试了十几遍 大概有个思路  记录一下

1.单元测试入口

2.subject().isPermitted("+user1+2")

.

3.根据格式选择传入需要判断的“+user1+2“权限解析器

4.将字符串解析成Permission对象

得到传入判断的Permission对象如下

5.接下来执行第2步的  isPermitted(principals, p)

6.获取授权信息  getAuthorizationInfo(principals)方法调用 ,先从缓存里找zhang这个用户的权限 如果没有  调用doGetAuthorizationInfo()方法获取授权信息

7.这里给zhang这个角色添加权限  三个角度 (1.角色  2.Permission对象 3.字符串权限)

8.getAuthorizationInfo()得到info,调用isPermitted(Permission permission, AuthorizationInfo info)

9.从授权信息info获取Permission权限集合(分别permission对象,字符串对象和角色包含的权限获取)

10. 将字符串权限,角色中权限解析成Permission对象

自定义角色权限解析器

11.当授权信息里的全部解析为permission对象后 开始调用遍历授权信息里的权限调用perm.implies(permission)与传入需要判断的permission比对

12.判断是否包含传入的权限  有匹配的话返回true 。至此,判断权限结束

shiro授权-记调试过程的更多相关文章

  1. Apache Shiro 使用手册(三)Shiro 授权

    授权即访问控制,它将判断用户在应用程序中对资源是否拥有相应的访问权限. 如,判断一个用户有查看页面的权限,编辑数据的权限,拥有某一按钮的权限,以及是否拥有打印的权限等等. 一.授权的三要素 授权有着三 ...

  2. Apache shiro集群实现 (四)shiro授权(Authentication)--访问控制

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  3. Shiro笔记(五)Shiro授权

    Shiro授权 也叫访问控制,即在应用中控制谁能访问那些资源(如访问页面.编辑数据.页面操作等).在授权中需要了解几个关键对象:主体(subject).资源(resource).权限(Permissi ...

  4. Apache Shiro 使用手册(三)Shiro 授权(转发:http://kdboy.iteye.com/blog/1155450)

    授权即访问控制,它将判断用户在应用程序中对资源是否拥有相应的访问权限. 如,判断一个用户有查看页面的权限,编辑数据的权限,拥有某一按钮的权限,以及是否拥有打印的权限等等. 一.授权的三要素 授权有着三 ...

  5. (转) Apache Shiro 使用手册(三)Shiro 授权

    解惑之处: 使用冒号分隔的权限表达式是org.apache.shiro.authz.permission.WildcardPermission 默认支持的实现方式. 这里分别代表了 资源类型:操作:资 ...

  6. 3、Shiro授权

    Shiro授权过程和认证过程相似: 项目结构: package com.shiro.shiroframe; import org.apache.shiro.SecurityUtils; import ...

  7. 关于火狐浏览器在开发调试过程中,出现javascript:void(0)的状态

    关于火狐浏览器在开发调试过程中,出现javascript:void(0)的状态 由于火狐浏览器没有安装 Adobe Flash Player 19 NPAPI这个插件 安装好了之后就可以直接运行了

  8. Shiro授权管理

    一.授权 授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等).在授权中需了解的几个关键对象:主体(Subject).资源(Resource).权限(Permissi ...

  9. 转:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法、shiro认证与shiro授权

    原文地址:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法.shiro认证与shiro授权 以下是部分内容,具体见原文. shiro介绍 什么是shiro shiro是Apache ...

随机推荐

  1. XE4 for ios 谨慎处理字符串

    由于xe4 for ios  里面的字符串处理有变化,具体可以参考官方文档,这两天帮一个朋友调试ios 的 应用,由于没有注意这一块,折腾了很长时间.特此记录下来,希望其他人不要走弯路. 以下面代码为 ...

  2. 2018.07.23 洛谷P4097 [HEOI2013]Segment(李超线段树)

    传送门 给出一个二维平面,给出若干根线段,求出x" role="presentation" style="position: relative;"&g ...

  3. C#与android连接 SimpleWifi

    有时候 Read时会返回0长度 ----- 当连续2次每读到数据时,建议发个心跳信息,然后单片机给个回复 C# using System; using System.Collections.Gener ...

  4. HDU 2089 不要62 (递推+暴力或者数位DP)

    题意:中文题. 析:暴力先从1到1000000,然后输出就好了. 代码如下: #include <iostream> #include <cstdio> #include &l ...

  5. Windows10和CentOS7双系统安装的一些小技巧

    我个人是先安装好了win10系统,且win10是单独在一个120g的盘里:而centOS7则是安装在另一个500g的磁盘的其中的380g里: 这里要着重注意的是,500g里分成380g的盘不要在win ...

  6. 3) Maven 目录结构

    进入maven根目录 cmd 命令 tree E:. │ LICENSE.txt │ NOTICE.txt │ README.txt │ ├─bin │ m2.conf │ mvn │ mvn.bat ...

  7. 信息管理代码分析<一>登录密码

    题解:这段代码的要求如下,输入一段字符密码(长度<=8)以二进制的形式存放在磁盘中,在输入时需要验证两次输入是否正确.第二个,登录.从磁盘中读取这个文件,然后再输入密码,看两者是否相同. 登录密 ...

  8. faceswap linux安裝教程

    http://www.mamicode.com/info-detail-2602743.html https://blog.csdn.net/sinat_26918145/article/detail ...

  9. Windows10+Python3下安装NumPy+SciPy+Matplotlib

    Numpy.SciPy.MatplotLib是Python下从事科学计算必不可少的库.我在用其他的方法安装时出现各种问题,发现直接安装.whl包是最快且不报错的方法. 1.下载.whl包在下面的网站中 ...

  10. java基础-day2

    第02天 java基础知识 今日内容介绍 u Eclipse的安装.配置及使用 u 运算符 u 键盘录入 第1章   Eclipse开发工具 1.1  Eclipse概述和安装 Eclipse是一个I ...