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,希望以上能解决你的问题。

本文由老郭种树原创,转载请注明:https://guozh.net/shiro-requirespermissions-not-working/

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注