shiro与spring security怎么用自定义异常处理401错误
发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,这篇文章主要介绍shiro与spring security怎么用自定义异常处理401错误,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!shiro与spring security
千家信息网最后更新 2024年11月14日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安全错误
数据库的锁怎样保障安全
上海网络技术前景
前端和网络安全哪个工资高
北碚区提供软件开发服务公司
万豪数据库被黑客入侵
游戏公司的服务器硬盘
梦真网络技术有限公司
信息网络安全书
网络技术员好吗
网络安全角色模型
大连办公软件开发公司
数据库怎么重新定义索引
中心管理服务器多少钱一台
巢湖电话网络技术咨询哪家好
数据库查询操作会产生事物日志吗
数据库查找微卫星标记
抖音服务器限流
迅雷服务器内部错误
回声室效应意指网络技术
证券行业科技与互联网金融
入侵根服务器
cs1.5服务器ip
mc主城服务器指令
淘宝直播软件开发
国家级网络安全基地
天河网络技术推广
株洲软件开发公司哪家靠谱
西游记于网络安全的联系
中国电信通信服务器设置密码
vb建立数据库教程
怎么回复数据库脚本