zoukankan      html  css  js  c++  java
  • SpringBoot Shiro 权限注解不起作用

    最近在学习springboot结合shiro做权限管理时碰到一个问题。

    问题如下:

    我在userRealm中的doGetAuthorizationInfo方法中给用户添加了权限,然后在Controller中写了下面的代码。其中URL为/listArticle的方法必须要有article:over权限才能通过。我在doGetAuthorizationInfo方法中给该用户添加的权限并没有article:over,但是当前端向该URL发送请求时,@RequiresPermissions注解不起作用,listArticle方法被执行了。而且我在方法内部打印isPermitted("article:over")的输出结果为false。最终通过网上查博客,发现是没有开启Shiro的注解支持的原因。

    @RequiresPermissions("article:over")
    @RequestMapping(value = "/listArticle", method = RequestMethod.POST)
    public JSONObject listArticle(@RequestBody JSONObject request){
        System.out.println("---------isPermitted article:over--------" + SecurityUtils.getSubject().isPermitted("article:over"));
        CommonTools.paginationConvert(request);
        int ArticleNum = articleService.getArticleNum();
        List<JSONObject> list = articleService.listArticle(request.getIntValue("offset"), request.getIntValue("pageRow"));
        return Result.success(request, list, ArticleNum);
    }
    

    解决方法如下:

    在ShiroConfig中添加如下一段代码。

    //开启对shiro注解的支持
    @Bean
    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
        AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
        advisor.setSecurityManager(securityManager);
        return advisor;
    }
    //开启aop注解支持
    @Bean
    public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
        DefaultAdvisorAutoProxyCreator defaultAAP = new DefaultAdvisorAutoProxyCreator();
        defaultAAP.setProxyTargetClass(true);
        return defaultAAP;
    }
    

    添加完这段代码后,我再向该URL发送请求时就会报如下异常,表明该用户没有该权限:
    org.apache.shiro.authz.AuthorizationException: Not authorized to invoke method

    参考博客:
    https://www.cnblogs.com/shiguotao-com/p/10617693.html
    https://www.cnblogs.com/tuifeideyouran/p/7696055.html

  • 相关阅读:
    java8 list 删除元素 简单版
    java8 list 删除元素 结构复杂版
    xshell 连接 centos 中的 vi 配色
    Redis 运行出错
    电脑清理秘籍 [ 精心总结 ]
    团队项目之后的反思
    团队项目心得 [ 感想 ]
    团队项目心得 [ 第二阶段项目总结 ]
    团队项目心得 [ 第一阶段项目总结 ]
    《创新者》读书笔记
  • 原文地址:https://www.cnblogs.com/variablex/p/14550244.html
Copyright © 2011-2022 走看看