第一个可能配置文件: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权限不生效原因相关推荐

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

    2019独角兽企业重金招聘Python工程师标准>>> 一.授权的三要素 授权有着三个核心元素:权限.角色和用户. 权限 权限是Apache Shiro安全机制最核心的元素.它在应用 ...

  2. Shiro <shiro:hasPermission 标签不生效,shiro权限不生效原因

    第一个可能配置文件:shiroConfig.java没加这个 /*** 开启Shiro的注解(如@RequiresRoles,@RequiresPermissions),需借助SpringAOP扫描使 ...

  3. Shiro与Spring集成时,Shiro权限注解@RequiresRoles等不生效的解决方案

    2019独角兽企业重金招聘Python工程师标准>>> Shiro与Spring集成时,Shiro权限注解@RequiresRoles等不生效, 这个问题着实整了好久,网上各种解决方 ...

  4. Spring Boot整合Shiro + JSP教程(用户认证,权限管理,图片验证码)

    在此首先感谢**编程不良人**up主提供的视频教程 代码都是跟着up的视频敲的,遇到的一些问题也是通过CSDN博主提供的教程解决的,在此也感谢那些提供bug解决方案的前辈们~ 项目完整代码已经发布到g ...

  5. shiro学习--jsp标签

    在页面上,如果要实现对某些文本.按钮等的控制,例如需要有什么角色或者权限才可以看见这个按钮,利用shiro自带的shiro标签能很容易就实现 一.引入shiro标签库 首先得在jsp页面的头部引入EL ...

  6. ssm+shiro+jsp标签。关键字:shiro的jsp标签,访问拦截。本次ssm和以前的ssm整合中的依赖包不一样。写根据不同用户出现不同的按钮内容就用这shiro标签来解决。Set集合在sql中

    shiro标签只能在jsp和ftl页面文件中使用,无法在html文件中使用 shiro认证后的在jsp页面中的标签: 使用shiro标签就一定要搭配shiro框架使用,即一定要有自定义realm,因为 ...

  7. shiro利用mysql动态授权_SpringBoot+Shiro学习之数据库动态权限管理和Redis缓存

    发现问题,需找解决思路. 之前我们整合Shiro,完成了登录认证和权限管理的实现,登录认证没什么说的,需要实现AuthorizingRealm中的doGetAuthenticationInfo方法进行 ...

  8. 使用 Shiro 设计基于用户、角色、权限的通用权限管理系统

    一.前言 在大型的信息管理系统中,经常涉及到权限管理系统 下面来个 demo,很多复杂的系统的设计都来自它 代码已经放到github上了,地址:https://github.com/larger5/s ...

  9. 简单扩展shiro 实现NOT、AND、OR权限验证(支持复杂一点的表达式)

    2019独角兽企业重金招聘Python工程师标准>>> 简单扩展shiro 实现NOT.AND.OR权限验证(支持复杂一点的表达式) .https://my.oschina.net/ ...

最新文章

  1. 用户 'IIS APPPOOL\DefaultAppPool'登录失败
  2. matlab指纹图像采集,基于MATLAB实现的指纹图像预处理
  3. Spring Cloud Alibaba:@SentinelResource注解的使用
  4. [云炬创业基础笔记]第十一章创业计划书测试10
  5. MATLAB实现FFT
  6. 数据库SQL优化大总结之 百万级数据库优化方案(转载)
  7. 05 - @property 后面所加的关键词
  8. Rust导出Python/Node.js可用的DLL库
  9. RabbitMQ 交换机、队列、消息持久化
  10. 《一次失败沟通后的自我觉察》
  11. hbuilderAnd海马玩模拟器的连接
  12. 云凤蝶可视化搭建的推导与实现 - SEE Conf
  13. Airspace smoothing
  14. 阿里视频云web播放器常见问题汇总
  15. 程序员的自我涵养,写好代码的实战经历分享
  16. 实战|使用python推送微信公众号消息(哄女友专用)
  17. IC卡、ID卡、M1卡、射频卡的区别是什么
  18. Cesium(六)淹没分析(polygon版本)
  19. Android读写日历,CalendarView
  20. (JS)Javascript之Ajax

热门文章

  1. uni-app-页面结构
  2. [leetcode] 62 Unique Paths (Medium)
  3. Codeforces 671D. Roads in Yusland(树形DP+线段树)
  4. 【UML】UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
  5. nginx upstream 常用的几种调度方式
  6. Lucene实战之基于StandardAnalyzer读写索引
  7. [译]怎样用HTML5 Canvas制作一个简单的游戏
  8. opengl 相关资料
  9. ubuntu 安装intel iofrt 和icc编译器
  10. 使用 SCons 代替 Makefile 快速构建应用程序