博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shiro初步 shiro授权
阅读量:5738 次
发布时间:2019-06-18

本文共 702 字,大约阅读时间需要 2 分钟。

授权流程

这里写图片描述

三种授权方法

Shiro 支持三种方式的授权:

编程式:通过写if/else 授权代码块完成:

Subject subject = SecurityUtils.getSubject();if(subject.hasRole(“admin”)) {    //有权限    } else {    //无权限    }

注解式:通过在执行的Java方法上放置相应的注解完成:

@RequiresRoles("admin")public void hello() {//有权限}

JSP/GSP 标签:在JSP/GSP 页面通过相应的标签完成:

在原来自定义的realm中,修改doGetAuthorizationInfo方法

1、对subject进行授权,调用方法isPermitted(”permission串”)

2、SecurityManager执行授权,通过ModularRealmAuthorizer执行授权
3、ModularRealmAuthorizer执行realm(自定义的CustomRealm)从数据库查询权限数据
调用realm的授权方法:doGetAuthorizationInfo
4、realm从数据库查询权限数据,返回ModularRealmAuthorizer
5、ModularRealmAuthorizer调用PermissionResolver进行权限串比对
6、如果比对后,isPermitted中”permission串”在realm查询到权限数据中,说明用户访问permission串有权限,否则 没有权限,抛出异常。

你可能感兴趣的文章
cocos2dx-3.0(21) 移植android平台 说多了都是泪
查看>>
Hadoop学习笔记(四)Hadoop伪分布式配置
查看>>
有限自动机的构造与识别
查看>>
RedHat Linux 安装oracle11g (转)
查看>>
清除浮动的方法以及各自的优缺点
查看>>
android 模块编译,mm 命令
查看>>
Linux内存初始化(二)identity mapping和kernel image mapping
查看>>
chmod -x chmod的N种解法
查看>>
41、生鲜电商平台-物流动态费率、免运费和固定运费设计与架构
查看>>
autoit获取ie浏览器简单操作网页(GUI小工具)
查看>>
for...in 和 for each...in的一些区分和用法
查看>>
多项式输出
查看>>
转载:性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项
查看>>
Windows下PHP安全环境的搭建
查看>>
pyqt5和qtdesign的使用
查看>>
MVC-Razor引擎布局
查看>>
C/C++ 段错误--关于指针内存泄露
查看>>
BASH 编程之变量高级篇
查看>>
java中的位运算符
查看>>
今夕七夕
查看>>