使用shiro的@RequiresPermissions注解无效但是 @RequiresRoles正常

1、shiro的验证权限的机制是模糊匹配而不是equals

    比如需要校验的权限是   @RequiresPermissions("system:user:add"),但是在自定义的shiroReam中addStringPermission时 添加了 "system"或者"system:user"

都会导致权限校验通过。个人建议直接添加最底层的权限校验即可。

 

2、shiro 的配置文件有问题添加以下代码,这种情况@RequiresPermissions 和@RequiresRoles都无效

   /**

    *  开启Shiro的注解(如@RequiresRoles,@RequiresPermissions),需借助SpringAOP扫描使用Shiro注解的类,并在必要时进行安全逻辑验证

    * 配置以下两个bean(DefaultAdvisorAutoProxyCreator和AuthorizationAttributeSourceAdvisor)即可实现此功能

    * @return

    */

   @Bean

   public DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator(){

       DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();

       advisorAutoProxyCreator.setProxyTargetClass(true);

       return advisorAutoProxyCreator;

   }

 

   /**

    * 开启aop注解支持

    * @param securityManager

    * @return

    */

   @Bean

   public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {

       AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();

       authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);

       return authorizationAttributeSourceAdvisor;

   }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值