Shiro @RequiresPermissions 和 RequiresRoles 注解不生效的解决方法

今天有个发现,使用 Shiro 的注解来授权,不注意可能会碰到授权不生效的情况,也就是这俩注解 @RequiresRoles@RequiresPermissions 没起作用。

原因很简单,这两个是 Shiro 的注解,我们需要借助 SpringAOP 扫描到它们。

ShiroConfig 中配置如下俩方法即可。

@Bean
    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;
    }

这个问题比较少见,因为项目中几乎不会使用注解来授权,太分散了。OK,希望以上能解决你的问题。

未经允许不得转载:老郭种树 » Shiro @RequiresPermissions 和 RequiresRoles 注解不生效的解决方法

赞 (3)

评论

6+6=

能将我博客放入广告拦截白名单吗?

我尽量分享有用并且长期有用的内容,希望能帮到你,谢谢支持。