项目场景:
相关背景:
使用idea 开发java 项目,使用 @RequiresPermissions(“”) 注解为接口设置相应的权限后,重新访问调用该接口的页面,前端页面请求页面中相关的接口时,出现报错信息,前端请求失败。
问题描述
问题:
使用 @RequiresPermissions(“”) 注解为接口设置相应的权限后,重新访问调用该接口的页面,出现以下报错信息:
This subject is anonymous - it does not have any identifying principals and authorization operations require an identity to check against. A Subject instance will acquire these identifying principals automatically after a successful login is performed be executing org.apache.shiro.subject.Subject.login(AuthenticationToken) or when 'Remember Me' functionality is enabled by the SecurityManager. This exception can also occur when a previously logged-in Subject has logged out which makes it anonymous again. Because an identity is currently not known due to any of these conditions, authorization is denied.: http://localhost:8090/operating/list
原因分析及解决方法:
分析:
这个问题可能是由于权限设置不正确导致的。
请确保在 @RequiresPermissions
注解中设置了正确的权限字符串,以确保用户有权访问该接口。
此外,还要确保用户已经登录,并且正确地通过身份验证。
如果问题仍然存在,可能需要检查项目的配置和安全设置,以确保正确处理用户身份和权限。
检查 java 项目中 Shiro配置 中的设置:
public class ShiroConfig {
Map<String, String> filterMap = new LinkedHashMap<>();
filterMap.put(“/option/list”,“anon”);
}
确认是否正确通过身份验证