Commit 1a1bebd6 authored by 杨钧's avatar 杨钧

异常处理

parent 4d8013f9
...@@ -6,6 +6,7 @@ import cn.quantgroup.customer.enums.ErrorCodeEnum; ...@@ -6,6 +6,7 @@ import cn.quantgroup.customer.enums.ErrorCodeEnum;
import cn.quantgroup.customer.exception.ValidTokenException; import cn.quantgroup.customer.exception.ValidTokenException;
import cn.quantgroup.customer.rest.vo.JsonResult; import cn.quantgroup.customer.rest.vo.JsonResult;
import cn.quantgroup.customer.service.IOpSystemService; import cn.quantgroup.customer.service.IOpSystemService;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -16,6 +17,7 @@ import javax.servlet.*; ...@@ -16,6 +17,7 @@ import javax.servlet.*;
import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -49,14 +51,18 @@ public class ValidOperatePermitFilter implements Filter { ...@@ -49,14 +51,18 @@ public class ValidOperatePermitFilter implements Filter {
String system = request.getHeader("x-auth-system"); String system = request.getHeader("x-auth-system");
if (StringUtils.isAnyBlank(token, system)) { if (StringUtils.isAnyBlank(token, system)) {
log.error("缺少token信息,拦截"); log.error("缺少token信息,拦截");
throw new ValidTokenException(ErrorCodeEnum.NO_TOKEN); //throw new ValidTokenException(ErrorCodeEnum.NO_TOKEN);
renderErrorMsg(servletResponse,ErrorCodeEnum.NO_TOKEN);
return;
} }
JsonResult<OpUser> opUserResult = IOpSystemService.findUserByToken(token, system); JsonResult<OpUser> opUserResult = IOpSystemService.findUserByToken(token, system);
if (Objects.isNull(opUserResult) || !opUserResult.isSuccess()) { if (Objects.isNull(opUserResult) || !opUserResult.isSuccess()) {
log.error("根据token查询不到用户信息 token:{}", token); log.error("根据token查询不到用户信息 token:{}", token);
// filter中异常无法捕获 // filter中异常无法捕获
throw new ValidTokenException(ErrorCodeEnum.ILLEGAL_TOKEN); //throw new ValidTokenException(ErrorCodeEnum.ILLEGAL_TOKEN);
renderErrorMsg(servletResponse,ErrorCodeEnum.ILLEGAL_TOKEN);
return;
} else { } else {
OpUser opUser = opUserResult.getData(); OpUser opUser = opUserResult.getData();
UserThreadLocal.set(opUser); UserThreadLocal.set(opUser);
...@@ -66,6 +72,30 @@ public class ValidOperatePermitFilter implements Filter { ...@@ -66,6 +72,30 @@ public class ValidOperatePermitFilter implements Filter {
filterChain.doFilter(servletRequest, servletResponse); filterChain.doFilter(servletRequest, servletResponse);
} }
/**
* 处理返回json格式数据
* @param servletResponse
* @param codeEnum
*/
private void renderErrorMsg(ServletResponse servletResponse, ErrorCodeEnum codeEnum) {
servletResponse.setCharacterEncoding("utf-8");
PrintWriter out = null;
JSONObject jsonObject = new JSONObject();
jsonObject.put("code",codeEnum.getCode());
jsonObject.put("msg",codeEnum.getMessage());
try {
out = servletResponse.getWriter();
servletResponse.setContentType("application/json; charset=utf-8");
out.print(jsonObject);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
log.error("处理转换信息异常:{}",e.getMessage());
}
}
@Override @Override
public void destroy() { public void destroy() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment