shiro与spring security怎么用自定义异常处理401错误
发表于:2024-11-12 作者:千家信息网编辑
千家信息网最后更新 2024年11月12日,这篇文章主要介绍shiro与spring security怎么用自定义异常处理401错误,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!shiro与spring security
千家信息网最后更新 2024年11月12日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安全错误
数据库的锁怎样保障安全
一个国家的网络安全
实例和数据库
南京 综合保障软件开发
万方数据库免费入口帐号
华仁国际软件开发
山东商务职业学院有网络技术
网络技术可以克隆吗
平江网络安全教育
网络安全工作整改方案
db2看数据库启动时间
银行管理系统数据库大作业
高科技时代如何维护网络安全
dd测试数据库性能
手机可以远程访问服务器吗
网络安全风险态势感知
启博vpn服务器
通过实际案例讲述网络安全
计算机三级网络技术改
数据库排他锁共享锁
软件开发 升级前 文档
数据库无法导入xlsx
网络安全发展水平
小米网络安全规范
网络安全课程学习体会
兰州网络技术联系方式
河南广拓网络技术有限公司
深圳销售软件开发费用是多少
网络安全和信息化 智慧城市
数据库的注释用什么符号
互联网房车科技