package com.kidgrow.zuul.exception;
import com.kidgrow.common.exception.GlobalExceptionHandler;
import com.kidgrow.common.model.ResultBody;
import com.kidgrow.common.utils.WebUtils;
import com.kidgrow.zuul.service.AccessLogService;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
*
* @Description: 自定义签名错误处理类
* @Project:
* @CreateDate: Created in 2020/2/4 14:49
* @Author: liuke
*/
@Slf4j
public class JsonSignatureDeniedHandler implements SignatureDeniedHandler {
private AccessLogService accessLogService;
public JsonSignatureDeniedHandler(AccessLogService accessLogService) {
this.accessLogService = accessLogService;
}
@Override
public void handle(HttpServletRequest request, HttpServletResponse response,
Exception exception) throws IOException, ServletException {
ResultBody resultBody = GlobalExceptionHandler.resolveException(exception,request.getRequestURI());
response.setStatus(resultBody.getHttpStatus());
// 保存日志
accessLogService.sendLog(request, response,exception);
WebUtils.writeJson(response, resultBody);
}
}