不存request了
This commit is contained in:
parent
4e9d6807d6
commit
20d78cb487
@ -1,11 +0,0 @@
|
|||||||
package com.ycwl.basic.annotation;
|
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
|
||||||
import java.lang.annotation.Retention;
|
|
||||||
import java.lang.annotation.RetentionPolicy;
|
|
||||||
import java.lang.annotation.Target;
|
|
||||||
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
@Target(value = {ElementType.METHOD})
|
|
||||||
public @interface RequestToFile {
|
|
||||||
}
|
|
@ -1,69 +0,0 @@
|
|||||||
package com.ycwl.basic.aspectj;
|
|
||||||
|
|
||||||
import com.ycwl.basic.annotation.RequestToFile;
|
|
||||||
import com.ycwl.basic.config.CachedBodyHttpServletRequest;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.aspectj.lang.ProceedingJoinPoint;
|
|
||||||
import org.aspectj.lang.annotation.After;
|
|
||||||
import org.aspectj.lang.annotation.Around;
|
|
||||||
import org.aspectj.lang.annotation.Aspect;
|
|
||||||
import org.aspectj.lang.annotation.Pointcut;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import org.springframework.web.context.request.RequestContextHolder;
|
|
||||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@Aspect
|
|
||||||
@Component
|
|
||||||
@Slf4j
|
|
||||||
public class HttpSaver {
|
|
||||||
|
|
||||||
@Pointcut("@annotation(com.ycwl.basic.annotation.RequestToFile)")
|
|
||||||
public void requestToFilePointCut() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@After("requestToFilePointCut()")
|
|
||||||
public void requestToFile() throws IOException {
|
|
||||||
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
|
||||||
if (attributes == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
HttpServletRequest request = attributes.getRequest();
|
|
||||||
saveRequestToFile(request);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void saveRequestToFile(HttpServletRequest request) throws IOException {
|
|
||||||
File file = new File("./request/"+System.currentTimeMillis()+".http");
|
|
||||||
// 写入文件
|
|
||||||
if (!file.getParentFile().exists()) {
|
|
||||||
file.getParentFile().mkdirs();
|
|
||||||
}
|
|
||||||
if (!file.exists()) {
|
|
||||||
file.createNewFile();
|
|
||||||
}
|
|
||||||
try (java.io.FileWriter writer = new java.io.FileWriter(file, true)) {
|
|
||||||
writer.append(request.getMethod()).append(" ").append(request.getRequestURL());
|
|
||||||
String queryString = request.getQueryString();
|
|
||||||
if (queryString != null) {
|
|
||||||
writer.append("?").append(queryString);
|
|
||||||
}
|
|
||||||
writer.append("\r\n");
|
|
||||||
Enumeration<String> headerNames = request.getHeaderNames();
|
|
||||||
while (headerNames.hasMoreElements()) {
|
|
||||||
String headerName = headerNames.nextElement();
|
|
||||||
writer.append(headerName).append(": ").append(request.getHeader(headerName)).append("\r\n");
|
|
||||||
}
|
|
||||||
writer.append("\r\n");
|
|
||||||
// 获取body
|
|
||||||
CachedBodyHttpServletRequest cachedRequest = (CachedBodyHttpServletRequest) request;
|
|
||||||
writer.append(new String(cachedRequest.getCachedBody()));
|
|
||||||
writer.append("\r\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,59 +0,0 @@
|
|||||||
package com.ycwl.basic.config;
|
|
||||||
|
|
||||||
import javax.servlet.ReadListener;
|
|
||||||
import javax.servlet.ServletInputStream;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletRequestWrapper;
|
|
||||||
import java.io.*;
|
|
||||||
|
|
||||||
public class CachedBodyHttpServletRequest extends HttpServletRequestWrapper {
|
|
||||||
private final byte[] cachedBody;
|
|
||||||
|
|
||||||
public CachedBodyHttpServletRequest(HttpServletRequest request) throws IOException {
|
|
||||||
super(request);
|
|
||||||
// 缓存请求体内容
|
|
||||||
InputStream requestInputStream = request.getInputStream();
|
|
||||||
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
|
||||||
byte[] buffer = new byte[1024];
|
|
||||||
int read;
|
|
||||||
while ((read = requestInputStream.read(buffer)) != -1) {
|
|
||||||
byteArrayOutputStream.write(buffer, 0, read);
|
|
||||||
}
|
|
||||||
cachedBody = byteArrayOutputStream.toByteArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ServletInputStream getInputStream() {
|
|
||||||
final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(cachedBody);
|
|
||||||
return new ServletInputStream() {
|
|
||||||
@Override
|
|
||||||
public int read() {
|
|
||||||
return byteArrayInputStream.read();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isFinished() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isReady() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setReadListener(ReadListener readListener) {
|
|
||||||
// 不需要实现
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BufferedReader getReader() {
|
|
||||||
return new BufferedReader(new InputStreamReader(this.getInputStream()));
|
|
||||||
}
|
|
||||||
|
|
||||||
public byte[] getCachedBody() {
|
|
||||||
return cachedBody;
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,8 +2,6 @@ package com.ycwl.basic.controller.mobile;
|
|||||||
|
|
||||||
|
|
||||||
import com.ycwl.basic.annotation.IgnoreToken;
|
import com.ycwl.basic.annotation.IgnoreToken;
|
||||||
import com.ycwl.basic.annotation.RequestToFile;
|
|
||||||
import com.ycwl.basic.aspectj.HttpSaver;
|
|
||||||
import com.ycwl.basic.enums.BizCodeEnum;
|
import com.ycwl.basic.enums.BizCodeEnum;
|
||||||
import com.ycwl.basic.model.wx.WXPayOrderReqVO;
|
import com.ycwl.basic.model.wx.WXPayOrderReqVO;
|
||||||
import com.ycwl.basic.model.wx.WxPayRespVO;
|
import com.ycwl.basic.model.wx.WxPayRespVO;
|
||||||
|
@ -4,12 +4,8 @@ import cn.hutool.core.collection.CollUtil;
|
|||||||
import cn.hutool.core.thread.ThreadFactoryBuilder;
|
import cn.hutool.core.thread.ThreadFactoryBuilder;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.ycwl.basic.annotation.IgnoreLogReq;
|
import com.ycwl.basic.annotation.IgnoreLogReq;
|
||||||
import com.ycwl.basic.annotation.IgnoreToken;
|
import com.ycwl.basic.annotation.IgnoreToken;
|
||||||
import com.ycwl.basic.annotation.RequestToFile;
|
|
||||||
import com.ycwl.basic.aspectj.HttpSaver;
|
|
||||||
import com.ycwl.basic.facebody.FaceBodyFactory;
|
|
||||||
import com.ycwl.basic.facebody.adapter.IFaceBodyAdapter;
|
import com.ycwl.basic.facebody.adapter.IFaceBodyAdapter;
|
||||||
import com.ycwl.basic.facebody.entity.AddFaceResp;
|
import com.ycwl.basic.facebody.entity.AddFaceResp;
|
||||||
import com.ycwl.basic.mapper.DeviceMapper;
|
import com.ycwl.basic.mapper.DeviceMapper;
|
||||||
@ -18,14 +14,11 @@ import com.ycwl.basic.mapper.SourceMapper;
|
|||||||
import com.ycwl.basic.model.pc.device.entity.DeviceConfigEntity;
|
import com.ycwl.basic.model.pc.device.entity.DeviceConfigEntity;
|
||||||
import com.ycwl.basic.model.pc.device.entity.DeviceEntity;
|
import com.ycwl.basic.model.pc.device.entity.DeviceEntity;
|
||||||
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
|
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
|
||||||
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
||||||
import com.ycwl.basic.model.viid.entity.DeviceIdObject;
|
import com.ycwl.basic.model.viid.entity.DeviceIdObject;
|
||||||
import com.ycwl.basic.model.viid.entity.FaceListObject;
|
import com.ycwl.basic.model.viid.entity.FaceListObject;
|
||||||
import com.ycwl.basic.model.viid.entity.FaceObject;
|
import com.ycwl.basic.model.viid.entity.FaceObject;
|
||||||
import com.ycwl.basic.model.viid.entity.FacePositionObject;
|
import com.ycwl.basic.model.viid.entity.FacePositionObject;
|
||||||
import com.ycwl.basic.model.viid.entity.ImageListObject;
|
|
||||||
import com.ycwl.basic.model.viid.entity.ImageObject;
|
|
||||||
import com.ycwl.basic.model.viid.entity.ResponseStatusObject;
|
import com.ycwl.basic.model.viid.entity.ResponseStatusObject;
|
||||||
import com.ycwl.basic.model.viid.entity.SubImageInfoObject;
|
import com.ycwl.basic.model.viid.entity.SubImageInfoObject;
|
||||||
import com.ycwl.basic.model.viid.entity.SubImageList;
|
import com.ycwl.basic.model.viid.entity.SubImageList;
|
||||||
@ -407,8 +400,6 @@ public class ViidController {
|
|||||||
@RequestMapping(value = "/Images", method = RequestMethod.POST)
|
@RequestMapping(value = "/Images", method = RequestMethod.POST)
|
||||||
@IgnoreLogReq
|
@IgnoreLogReq
|
||||||
public VIIDBaseResp images(HttpServletRequest request, @RequestBody ImageUploadReq req) throws IOException {
|
public VIIDBaseResp images(HttpServletRequest request, @RequestBody ImageUploadReq req) throws IOException {
|
||||||
// log.info("Images:{}", req);
|
|
||||||
HttpSaver.saveRequestToFile(request);
|
|
||||||
return new VIIDBaseResp(
|
return new VIIDBaseResp(
|
||||||
new ResponseStatusObject("1", "/VIID/Images", "0", "OK", sdfTime.format(new Date()))
|
new ResponseStatusObject("1", "/VIID/Images", "0", "OK", sdfTime.format(new Date()))
|
||||||
);
|
);
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
package com.ycwl.basic.exception;
|
package com.ycwl.basic.exception;
|
||||||
|
|
||||||
import com.ycwl.basic.aspectj.HttpSaver;
|
|
||||||
import com.ycwl.basic.enums.BizCodeEnum;
|
import com.ycwl.basic.enums.BizCodeEnum;
|
||||||
import com.ycwl.basic.notify.NotifyFactory;
|
|
||||||
import com.ycwl.basic.notify.entity.NotifyContent;
|
|
||||||
import com.ycwl.basic.utils.ApiResponse;
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
import org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException;
|
import org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@ -12,14 +9,9 @@ import org.springframework.http.HttpStatus;
|
|||||||
import org.springframework.http.converter.HttpMessageNotReadableException;
|
import org.springframework.http.converter.HttpMessageNotReadableException;
|
||||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||||
import org.springframework.web.context.request.RequestContextHolder;
|
|
||||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @date 2022年09月23日 10:19
|
* @date 2022年09月23日 10:19
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
package com.ycwl.basic.filter;
|
|
||||||
|
|
||||||
import com.ycwl.basic.config.CachedBodyHttpServletRequest;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import javax.servlet.*;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletRequestWrapper;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class RequestCacheFilter implements Filter {
|
|
||||||
@Override
|
|
||||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
|
|
||||||
throws IOException, ServletException {
|
|
||||||
// 包装原始请求
|
|
||||||
HttpServletRequestWrapper wrappedRequest = new CachedBodyHttpServletRequest((HttpServletRequest) request);
|
|
||||||
// 继续处理请求链
|
|
||||||
chain.doFilter(wrappedRequest, response);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user