shiro与spring security怎么用自定义异常处理401错误
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要介绍shiro与spring security怎么用自定义异常处理401错误,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!shiro与spring security
千家信息网最后更新 2025年11月09日shiro与spring security怎么用自定义异常处理401错误
这篇文章主要介绍shiro与spring security怎么用自定义异常处理401错误,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
shiro与spring security自定义异常处理401
背景
现在是前后端分离的时代,后端必然要统一处理返回结果,比如定义一个返回对象
public class ResponseData{ /** * 统一返回码 */ public String rtnCode; /** * 统一错误消息 */ public String rtnMsg; /** * 结果对象 */ public T rtnData;
对于所有异常都有对应的rtnCode对应,而不需要框架默认处理如返回
这时候前端同学就不开心了,都已经有rtnCode了,为啥http的status还要弄个401而不是200。
解决方案
一般的业务异常在springboot项目中新建一个统一处理类去处理即可,如
@ControllerAdvicepublic class DefaultExceptionHandler { /** * 异常统一处理 */ @ExceptionHandler({Exception.class}) @ResponseStatus(HttpStatus.OK) @ResponseBody public ResponseData allException(Exception e) {大部分情况都能捕获到从而如期返回json对象数据,但是某些权限框架抛出的异常如401等等,不会被拦截到,这时候就需要再建一个类去处理这种情况,代码如下
package com;import com.vo.ResponseData;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.autoconfigure.web.ErrorAttributes;import org.springframework.boot.autoconfigure.web.ErrorController;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.context.request.RequestAttributes;import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.util.Map;/** * spring security 异常处理 */@RestControllerpublic class CustomErrorController implements ErrorController { private static final String PATH = "/error"; @Autowired private ErrorAttributes errorAttributes; @RequestMapping(value = PATH) ResponseData error(HttpServletRequest request, HttpServletResponse response) { // Appropriate HTTP response code (e.g. 404 or 500) is automatically set by Spring. // Here we just define response body. Map errorMap = getErrorAttributes(request); ResponseData d= new ResponseData(response.getStatus()+"", errorMap.get("message").toString()); response.setStatus(HttpServletResponse.SC_OK); return d; } @Override public String getErrorPath() { return PATH; } private Map getErrorAttributes(HttpServletRequest request) { RequestAttributes requestAttributes = new ServletRequestAttributes(request); return errorAttributes.getErrorAttributes(requestAttributes, false); }} SpringBoot整合Shiro自定义filter报错
No SecurityManager accessible to the calling code...
最近在用springboot整合shiro,在访问时出现了No SecurityManager accessible to the calling code…
报错:
产生原因
自定义的SysUserFilter加载顺序在ShiroFilter之前,导致出现No SecurityManager accessible to the calling code…
解决办法
shiroFilter()的加载先于自定义的SysUserFilter
以上是"shiro与spring security怎么用自定义异常处理401错误"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
处理
统一
错误
对象
内容
情况
框架
篇文章
结果
整合
业务
代码
价值
兴趣
前端
办法
原因
同学
大部分
小伙
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发概要设计的任务界面设计
如何找到网络技术
网络安全英语作文初中带翻译
网络安全工作责任制度怎么写
潘苏雅软件开发
正规网络技术开发常见问题
辽宁统一软件开发价钱
网络安全推荐目录
200核的服务器工作站
创业云服务器 怎么样
中体柠檬网络技术有限公司
重庆人工智能软件开发价格表
风云网络技术
知网交易数据库
交接本地数据库会断开连接吗
如何编写数据库脚本
网络安全知识讲座的通知
网络安全三个知识点
龙树互联网科技
饥荒服务器质量
单位网络安全知识授课
网络安全训练营管理密码
数据库表限制输入长度
rust无法解析服务器
全球软件开发大会北京站
数据库数据转化为对象java
达内网络运维与网络安全视频
现在大学的网络安全专业怎么样
软件开发拆分工作
黄浦区无线网络技术电话