在Springboot环境中继承Shiro时,使用注解@RequiresPermissions时无效。
        @RequestMapping("/list") @RequiresPermissions(value = { "进货单据查询" })
public Map<String,Object> list(PurchaseList purchaseList)throws Exception{
Map<String, Object> resultMap = new HashMap<>(); List<PurchaseList>
purchaseListList=purchaseListService.list(purchaseList, Direction.DESC,
"purchaseDate"); resultMap.put("rows", purchaseListList); return resultMap; }
解决方法:需要开启Shiro注解。在ShiroConfig类中添加如下代码。
    /** *
开启Shiro的注解(如@RequiresRoles,@RequiresPermissions),需借助SpringAOP扫描使用Shiro注解的类,并在必要时进行安全逻辑验证
*
配置以下两个bean(DefaultAdvisorAutoProxyCreator(可选)和AuthorizationAttributeSourceAdvisor)即可实现此功能
* @return */ @Bean @DependsOn({"lifecycleBeanPostProcessor"}) public
DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator(){
DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new
DefaultAdvisorAutoProxyCreator();
advisorAutoProxyCreator.setProxyTargetClass(true); return
advisorAutoProxyCreator; } @Bean public AuthorizationAttributeSourceAdvisor
authorizationAttributeSourceAdvisor(){ AuthorizationAttributeSourceAdvisor
authorizationAttributeSourceAdvisor = new
AuthorizationAttributeSourceAdvisor();
authorizationAttributeSourceAdvisor.setSecurityManager(securityManager());
return authorizationAttributeSourceAdvisor; }

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信