权限框架 - shiro 授权demo
之前说了权限认证,其实也就是登录验证身份
这次来说说shiro的授权
shiro可以针对角色授权,或者访问资源授权
两者都行,但是在如今的复杂系统中,当然使用后者,如果你是小系统或者私活的话,前者即可,甚至可以不用,我懂的
好吧,上代码:
首先新建一个ini,登陆信息以及权限配置好
1 #用户 2 [users] 3 #eric 用户nathan的密码是123456,拥有boss以及hr两个权限 4 eric=123456,boss,hr 5 merry=123456,hr 6 7 #权限 8 [roles] 9 #角色对用资源user来说拥有create以及update权限 10 boss=user:create,user:update 11 #角色对用资源user来说拥有create以及delete权限 12 hr=user:create,user:delete 13 #角色对用资源user来说拥有create权限 14 tl=user:create
以下代码先登陆,后授权,分为角色以及资源
1 @Test 2 public void testAuthorization() { 3 4 // 创建SecurityManager工厂 5 Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro/shiro-permission.ini"); 6 // 创建SecurityManager 7 SecurityManager securityManager = factory.getInstance(); 8 // 将SecurityManager设置到系统运行环境,和spring后将SecurityManager配置spring容器中,一般单例管理 9 SecurityUtils.setSecurityManager(securityManager); 10 // 创建subject 11 Subject subject = SecurityUtils.getSubject(); 12 // 创建token令牌 13 UsernamePasswordToken token = new UsernamePasswordToken("eric", "123456"); 14 // 执行认证 15 try { 16 subject.login(token); 17 } catch (AuthenticationException e) { 18 e.printStackTrace(); 19 } 20 System.out.println("认证状态:" + subject.isAuthenticated()); 21 // 认证通过后执行授权 22 23 // 基于角色的授权 24 // hasRole传入角色标识 25 boolean ishasRole = subject.hasRole("hr"); 26 System.out.println("单个角色判断" + ishasRole); 27 // hasAllRoles是否拥有多个角色 28 boolean hasAllRoles = subject.hasAllRoles(Arrays.asList("boss", "hr", "tl")); 29 System.out.println("多个角色判断" + hasAllRoles); 30 31 // 使用check方法进行授权,如果授权不通过会抛出异常 32 // subject.checkRole("employee"); 33 34 // 基于资源的授权 35 // isPermitted传入权限标识符 36 boolean isPermitted = subject.isPermitted("user:create:1"); 37 System.out.println("单个权限判断" + isPermitted); 38 39 boolean isPermittedAll = subject.isPermittedAll("user:create:1", 40 "user:delete"); 41 System.out.println("多个权限判断" + isPermittedAll); 42 43 // 使用check方法进行授权,如果授权不通过会抛出异常 44 subject.checkPermission("items:create:1"); 45 46 }
这些都是简单的配置
过后会讲讲如何配合springmvc spring 以及mybatis进行动态认证授权
权限框架 - shiro 授权demo相关推荐
- 权限框架 - shiro 简单入门实例
前面的帖子简单的介绍了基本的权限控制,可以说任何一个后台管理系统都是需要权限的 今天开始咱们来讲讲Shiro 首先引入基本的jar包 1 <!-- shiro --> 2 <depe ...
- Shiro 授权(权限)
文章目录 一.授权(权限) 1.1 什么是权限 1.2 权限框架 二.身份验证Subject(配置文件版) 2.1 导入依赖 2.2 shiro.ini 2.3 权限验证(登录) 2.4 身份认证流程 ...
- android 框架_AOP编程_Android优雅权限框架(2)Demo完全解析
享学课堂特邀作者:老顾 转载请声明出处! 上篇文章:AOP编程_Android优雅权限框架(1)概念基础 5. AOP优雅权限框架详解 Demo地址: https://github.com/18598 ...
- (转)shiro权限框架详解05-shiro授权
http://blog.csdn.net/facekbook/article/details/54910606 本文介绍 授权流程 授权方式 授权测试 自定义授权realm 授权流程 开始构造Secu ...
- SSM整合shiro权限框架
一.SSM整合shiro框架 1.步骤 1.添加shiro框架需要的jar包,包括shiro-core.shiro-web.shiro-spring的关系依赖 <!-- shiro jar包依赖 ...
- 基于vue(element ui) + ssm + shiro 的权限框架
zhcc 基于vue(element ui) + ssm + shiro 的权限框架 引言 心声 现在的Java世界,各种资源很丰富,不得不说,从分布式,服务化,orm,再到前端控制,权限等等玲琅满目 ...
- springboot 2.x 整合 shiro 权限框架
序 在实际项目中,经常需要用到角色权限区分,以此来为不同的角色赋予不同的权利,分配不同的任务.比如,普通用户只能浏览:会员可以浏览和评论:超级会员可以浏览.评论和看视频课等:实际应用场景很多.毫不夸张 ...
- SpringBoot2.x 整合 shiro 权限框架
每天早上七点三十,准时推送干货 在实际项目中,经常需要用到角色权限区分,以此来为不同的角色赋予不同的权利,分配不同的任务.比如,普通用户只能浏览:会员可以浏览和评论:超级会员可以浏览.评论和看视频课等 ...
- JAVAWEB开发之权限管理(一)——权限管理详解(权限管理原理以及方案)、不使用权限框架的原始授权方式详解
知识清单 1.了解基于资源的权限管理方式 2. 掌握权限数据模型 3. 掌握基于url的权限管理(不使用Shiro权限框架的情况下实现权限管理) 4. shiro实现用户认证 5. shiro实现用户 ...
最新文章
- 如何扩展Linux的ip_conntrack
- Spring Bean的作用域及生命周期
- wxWidgets:显示 wxDebugReport 和相关类的最小示例
- 我的2020年度总结
- LeetCode 145. 二叉树的后序遍历(后序遍历总结)
- PX4代码解析(1)
- 12505 java_Java jdbc Oracle error: ORA 12505
- 转 十道海量数据处理面试题与十个方法大总结
- appscan 9.0.3.10 版本下载
- 手机WAPI功能检测常见问题分析(系列连载二):证书鉴别功能
- html左侧浮动广告代码,如何制作浮动广告 JavaScript制作浮动广告代码
- EKL构造点和线的基本用法
- 九度oj-1158-买房子
- 为一个 iOS 应用编写一个简单的 Node.js/MongoDB Web 服务
- 44岁万达女高管跳楼:摧毁一个中年人有多容易!
- python调用程序call_Python调用外部程序——os.system()和subprocess.call()
- 文本分词并统计出现次数最高的几个词Python
- 硬核FutureTask解析
- 数字图像处理第三章<一>、灰度变换
- 计算机从一级到四级要学多久,从一级到四级 全国计算机等级考试全攻略
热门文章
- mysql密码错误 mac_MAC下MYSQL5.7.17连接不上提示密码错解决步骤
- php每天扒取当天新闻_php 抓取新浪新闻的程序代码
- 黑星什么意思_星月菩提黑星海南料什么意思
- oracle脱机备份文件拒绝访问,如何解决备份文件夹拒绝访问问题
- 软件测试技术与项目实训pdf,软件测试技术任务驱动式教程pdf
- java做台球时老是闪屏_电脑老是闪屏的原因和解决办法
- 插入最快mysql8.0_MySQL8.0大表秒加字段,是真的吗?
- Mybatis框架的操作步骤和细节处理
- MySQL中有关TIMESTAMP和DATETIME的总结
- pinpoint 安装部署