采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
如下图,当token过期,捕获到ExpiredJwtException异常,服务器返回500状态码。如何修改返回的http状态码,并返回到前端?
您好,Spring的全局异常管理,是管不到Filter的哈。
如果您使用Filter的话,那么得将异常try...catch...一下,当发生SecurityException、ExpiredJwtException和IllegalArgumentException时,返回您想要返回的消息体即可。
返回JSON的示例代码如下:
response.setCharacterEncoding(
"UTF-8"
);
response.setContentType(
"application/json; charset=utf-8"
PrintWriter out = null ;
try{
JSONObject res = new JSONObject();
res.put(
"success"
,
"false"
"msg"
"xxxx"
out = response.getWriter();
out.append(res.toString());
return
false
;
}
catch (Excepton e){
e.printStackTrace();
response.sendError(500);
这其实是一个Spring MVC领域的基础问题哈。
Filter无法被Spring MVC管理,得基于Servlet规范自己写返回。
--------
如果您希望使用Spring的全局异常管理的话,可以:
像视频一样,用AOP玩儿;
改用拦截器,拦截器是Spring MVC里面的东西,发生异常能够被Spring的全局异常管理所管理到。
GlobalExceptionErrorHandler应该捕获哪个异常?SecurityException、ExpiredJwtException和IllegalArgumentException都捕获不到
接上一条回复:我是在filter中验证token是否合法。@RestControllerAdvice捕获不到的情况下,如何返回ResponseEntity方式返回?
登录后可查看更多问答,登录/注册
面向未来微服务:熟练掌握Spring Cloud Alibaba
623 4
2.0k 1
2.7k 2
1.7k 3
3.7k 13
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号