admin 管理员组

文章数量: 887021


2024年2月7日发(作者:oracle黄霄云)

springboot集成shiro——使用RequiresPermissions注解无效

在集成Shiro框架中,我们可以使用RequiresPermissions注解来标识方法或者类级别的权限控制。但是在一些情况下,可能会遇到包括RequiresPermissions注解无效的情况。下面我将详细介绍一些可能导致RequiresPermissions注解无效的原因,并给出相应的解决办法。

1. 配置文件问题:Shiro框架需要一个文件或者文件来读取权限规则。如果你没有指定这个配置文件,或者文件路径不正确,那么RequiresPermissions注解就会无效。解决方法是在文件中添加以下配置:

```

shiro:

config:

file: classpath:

```

```java

public ShiroFilterFactoryBean shiroFilter(SecurityManager

securityManager)

ShiroFilterFactoryBean shiroFilter = new

ShiroFilterFactoryBean(;

urityManager(securityManager);

// 添加需要进行权限控制的url

Map filterChainDefinitionMap = new

LinkedHashMap<>(;

//...

terChainDefinitionMap(filterChainDefinitionMap);

return shiroFilter;

}

```

3. 自定义Realm问题:如果你使用了自定义的Realm,那么可能是Realm中没有正确配置权限信息导致RequiresPermissions注解无效。解决方法是在Realm中重写doGetAuthorizationInfo方法,并在该方法中添加相应的角色和权限信息:

```java

protected AuthorizationInfo

doGetAuthorizationInfo(PrincipalCollection principals)

SimpleAuthorizationInfo authorizationInfo = new

SimpleAuthorizationInfo(;

//添加角色和权限信息

e("admin");

ingPermission("user:delete");

return authorizationInfo;

}

```

以上是一些常见的原因,可能导致RequiresPermissions注解无效的情况。希望能够帮助到你解决问题。如果还有其他问题,请随时提问。


本文标签: 注解 权限 文件 添加 方法