code: 500 ] This subject is anonymous - it does not have any identifying

本文讲述了在使用Idea开发Java项目时,前端请求接口遇到500错误,原因是ApacheShiro安全框架下的身份验证问题。提供了确认身份验证、正确配置Shiro以及处理匿名用户状态的解决方案。
摘要由CSDN通过智能技术生成

项目场景:

相关背景:

使用idea 开发java 项目,前端页面请求 页面中相关的接口时,idea 控制台有报错信息出现,前端请求失败。


问题描述

问题:

使用idea 开发java 项目,前端页面请求 页面中相关的接口时,idea 控制台有报错信息出现,前端请求失败。报错信息如下所示:

code: 500 ] 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/act/model/list

原因分析:

分析问题:
在这里插入图片描述
这个错误是由于在使用 Apache Shiro 安全框架时,当前主体(Subject)未经过身份验证而执行了授权操作,导致没有任何可用的身份信息进行检查。


解决方案:

解决方案:

1、首先需要确认当前主体是否已经经过身份验证。
2、如果当前主体确实需要进行授权操作,需要先进行身份验证,然后再执行授权操作。身份验证可以通过调用 Subject.login(AuthenticationToken) 方法实现。

3、如果在使用 Shiro 的“Remember Me”功能时出现此问题,则需要启用 SecurityManager 中的此功能,以允许主体在下一次访问时自动恢复身份信息。

此外,如果先前已经登录的主体已经退出系统,则当前主体将被认为是匿名的,而无法进行授权操作。
所以在这种情况下,需要重新进行身份验证,并重新授权

在解决此问题时,你还应该检查您在代码中的使用是否正确,以确保你的程序使用 Shiro 的安全功能时没有出现任何错误。

解决方法:在shiro配置时,将该请求配置了anon:

在这里插入图片描述
具体请求接口配置方式:
在这里插入图片描述

我的问题解决啦,希望你们的问题也顺利解决啦~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值