shiro与spring security怎么用自定义异常处理401错误
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍shiro与spring security怎么用自定义异常处理401错误,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!shiro与spring security
千家信息网最后更新 2025年01月19日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. MaperrorMap = 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安全错误
数据库的锁怎样保障安全
0基础专升本怎么转行软件开发
外国对网络技术的监管
公安部网络安全保卫局许剑
哈工程 周全 网络安全
网络安全基础 英文答案
智能数据库工程师
安全狗服务器格式化
本科软件开发前端
北京招聘软件开发工作内容
开封市鼎元软件开发有限公司
统网络安全法要求
污点数据库
数据库有多少个触发器
我的世界怎么搬到服务器
饥荒服务器怎么添加二维码
扬州云服务器厂家直供
脉脉科技互联网考试题
西海服务器离盘锦多远
清明停服务器
晋城软件开发价格多少
cf该服务器已满掉线咋回事
校园网络安全主题手抄报
sql 修改数据库数据文件
如何用app连接数据库
无法收到网络安全认证验证码
一般网络安全有限制吗
密码学算网络安全吗
十堰网络安全学院招生简章
杭州erp软件开发哪家正规
腾讯免费的服务器怎么申请