Shiro <shiro:hasPermission >标签不生效,shiro权限不生效原因
第一个可能配置文件:shiroConfig.java没加这个
/*** 开启Shiro的注解(如@RequiresRoles,@RequiresPermissions),需借助SpringAOP扫描使用Shiro注解的类,并在必要时进行安全逻辑验证* 配置以下两个bean(DefaultAdvisorAutoProxyCreator和AuthorizationAttributeSourceAdvisor)即可实现此功能* @return*/@Bean@ConditionalOnMissingBeanpublic DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator(){DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();advisorAutoProxyCreator.setProxyTargetClass(true);return advisorAutoProxyCreator;}/*** 开启shiro aop注解支持.* 使用代理方式;所以需要开启代码支持;* @param securityManager* @return* */@Beanpublic AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager){AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);return authorizationAttributeSourceAdvisor;}
第二个可能是:标签定义 名称 权限
合同管理 b2b:contract
供应商合同 b2b:contract:view
添加 b2b:contract:add
编辑 b2b:contract:edit
删除 b2b:contract:del
我没给删除权限,它还是在前端显示出来,并且可以操作
原来不生效代码:
<shiro:hasPermission name="b2b:contract:add"><div class="layui-inline"><a class="layui-btn layui-btn-normal add_btn">添加</a></div></shiro:hasPermission><shiro:hasPermission name="b2b:contract:edit"><div class="layui-inline"><a class="layui-btn layui-btn-warm layui-btn-normal edit_btn">编辑</a></div></shiro:hasPermission><shiro:hasPermission name="b2b:contract:del"><div class="layui-inline"><a class="layui-btn layui-btn-danger layui-btn-normal delAll_btn">删除</a></div></shiro:hasPermission>
修改后:
<shiro:hasPermission name="b2b:contract:add"><div class="layui-inline"><a class="layui-btn layui-btn-normal add_btn">添加</a></div></shiro:hasPermission><shiro:hasPermission name="b2b:contract:edit"><div class="layui-inline"><a class="layui-btn layui-btn-warm layui-btn-normal edit_btn">编辑</a></div></shiro:hasPermission><shiro:hasPermission name="b2b2:contract:del"><div class="layui-inline"><a class="layui-btn layui-btn-danger layui-btn-normal delAll_btn">删除</a></div></shiro:hasPermission>
只修改了<shiro:hasPermission name=“b2b2:contract:del”> 就好了
这是因为
第一层级权限为:【b2b:contract】,第二层级为:【b2b:contract:view】,第三层级为:【b2b:contract:add】,这个使用坑就出现了。当你使用【b2b:contract】权限时,意味着后面包含b2b:contract的都有权限了,
综上所述,有层级关系的权限标识就有可能带来使用的误区。
shiro标签的判断方式是通过集合的包含关系判断的,并不是通过字符串的形式
要主意匹配问题,不要存在包含问题,类似aaa 和aaab ,会导致后面标签失效。
文章转自
Shiro <shiro:hasPermission >标签不生效,shiro权限不生效原因相关推荐
- Apache Shiro 使用手册(三)Shiro 授权
2019独角兽企业重金招聘Python工程师标准>>> 一.授权的三要素 授权有着三个核心元素:权限.角色和用户. 权限 权限是Apache Shiro安全机制最核心的元素.它在应用 ...
- Shiro <shiro:hasPermission 标签不生效,shiro权限不生效原因
第一个可能配置文件:shiroConfig.java没加这个 /*** 开启Shiro的注解(如@RequiresRoles,@RequiresPermissions),需借助SpringAOP扫描使 ...
- Shiro与Spring集成时,Shiro权限注解@RequiresRoles等不生效的解决方案
2019独角兽企业重金招聘Python工程师标准>>> Shiro与Spring集成时,Shiro权限注解@RequiresRoles等不生效, 这个问题着实整了好久,网上各种解决方 ...
- Spring Boot整合Shiro + JSP教程(用户认证,权限管理,图片验证码)
在此首先感谢**编程不良人**up主提供的视频教程 代码都是跟着up的视频敲的,遇到的一些问题也是通过CSDN博主提供的教程解决的,在此也感谢那些提供bug解决方案的前辈们~ 项目完整代码已经发布到g ...
- shiro学习--jsp标签
在页面上,如果要实现对某些文本.按钮等的控制,例如需要有什么角色或者权限才可以看见这个按钮,利用shiro自带的shiro标签能很容易就实现 一.引入shiro标签库 首先得在jsp页面的头部引入EL ...
- ssm+shiro+jsp标签。关键字:shiro的jsp标签,访问拦截。本次ssm和以前的ssm整合中的依赖包不一样。写根据不同用户出现不同的按钮内容就用这shiro标签来解决。Set集合在sql中
shiro标签只能在jsp和ftl页面文件中使用,无法在html文件中使用 shiro认证后的在jsp页面中的标签: 使用shiro标签就一定要搭配shiro框架使用,即一定要有自定义realm,因为 ...
- shiro利用mysql动态授权_SpringBoot+Shiro学习之数据库动态权限管理和Redis缓存
发现问题,需找解决思路. 之前我们整合Shiro,完成了登录认证和权限管理的实现,登录认证没什么说的,需要实现AuthorizingRealm中的doGetAuthenticationInfo方法进行 ...
- 使用 Shiro 设计基于用户、角色、权限的通用权限管理系统
一.前言 在大型的信息管理系统中,经常涉及到权限管理系统 下面来个 demo,很多复杂的系统的设计都来自它 代码已经放到github上了,地址:https://github.com/larger5/s ...
- 简单扩展shiro 实现NOT、AND、OR权限验证(支持复杂一点的表达式)
2019独角兽企业重金招聘Python工程师标准>>> 简单扩展shiro 实现NOT.AND.OR权限验证(支持复杂一点的表达式) .https://my.oschina.net/ ...
最新文章
- 用户 'IIS APPPOOL\DefaultAppPool'登录失败
- matlab指纹图像采集,基于MATLAB实现的指纹图像预处理
- Spring Cloud Alibaba:@SentinelResource注解的使用
- [云炬创业基础笔记]第十一章创业计划书测试10
- MATLAB实现FFT
- 数据库SQL优化大总结之 百万级数据库优化方案(转载)
- 05 - @property 后面所加的关键词
- Rust导出Python/Node.js可用的DLL库
- RabbitMQ 交换机、队列、消息持久化
- 《一次失败沟通后的自我觉察》
- hbuilderAnd海马玩模拟器的连接
- 云凤蝶可视化搭建的推导与实现 - SEE Conf
- Airspace smoothing
- 阿里视频云web播放器常见问题汇总
- 程序员的自我涵养,写好代码的实战经历分享
- 实战|使用python推送微信公众号消息(哄女友专用)
- IC卡、ID卡、M1卡、射频卡的区别是什么
- Cesium(六)淹没分析(polygon版本)
- Android读写日历,CalendarView
- (JS)Javascript之Ajax
热门文章
- uni-app-页面结构
- [leetcode] 62 Unique Paths (Medium)
- Codeforces 671D. Roads in Yusland(树形DP+线段树)
- 【UML】UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
- nginx upstream 常用的几种调度方式
- Lucene实战之基于StandardAnalyzer读写索引
- [译]怎样用HTML5 Canvas制作一个简单的游戏
- opengl 相关资料
- ubuntu 安装intel iofrt 和icc编译器
- 使用 SCons 代替 Makefile 快速构建应用程序