src/main/java/com/zy/common/config/AdminInterceptor.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/config/CustomRequestFilter.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/utils/CustomHttpServletRequestWrapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/common/config/AdminInterceptor.java
@@ -14,13 +14,16 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.lang.Nullable; import org.springframework.stereotype.Component; import org.springframework.util.StreamUtils; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Method; import java.nio.charset.Charset; import java.util.Date; /** @@ -137,12 +140,15 @@ Http.response(response, BaseRes.NO_ACTIVATION); return false; } ServletInputStream inputStream = request.getInputStream(); String bodyParam = StreamUtils.copyToString(inputStream, Charset.defaultCharset()); // 记录操作日志 OperateLog operateLog = new OperateLog(); operateLog.setAction(Cools.isEmpty(memo)?request.getRequestURI():memo); operateLog.setIp(request.getRemoteAddr()); operateLog.setUserId(user.getId()); operateLog.setRequest(JSON.toJSONString(request.getParameterMap())); operateLog.setRequest(JSON.toJSONString(bodyParam)); request.setAttribute("operateLog", operateLog); } return true; src/main/java/com/zy/common/config/CustomRequestFilter.java
New file @@ -0,0 +1,20 @@ package com.zy.common.config; import com.zy.common.utils.CustomHttpServletRequestWrapper; import org.springframework.stereotype.Component; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; @Component public class CustomRequestFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest) request; CustomHttpServletRequestWrapper requestWrapper = new CustomHttpServletRequestWrapper(httpServletRequest); chain.doFilter(requestWrapper, response); } } src/main/java/com/zy/common/utils/CustomHttpServletRequestWrapper.java
New file @@ -0,0 +1,48 @@ package com.zy.common.utils; import org.springframework.util.StreamUtils; import javax.servlet.ReadListener; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import java.io.*; public class CustomHttpServletRequestWrapper extends HttpServletRequestWrapper { private final byte[] bytes; public CustomHttpServletRequestWrapper(HttpServletRequest request) throws IOException { super(request); bytes = StreamUtils.copyToByteArray(request.getInputStream()); } @Override public ServletInputStream getInputStream() throws IOException { final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); return new ServletInputStream() { @Override public boolean isFinished() { return false; } @Override public boolean isReady() { return false; } @Override public void setReadListener(ReadListener readListener) { } @Override public int read() throws IOException { return byteArrayInputStream.read(); } }; } @Override public BufferedReader getReader() throws IOException { return new BufferedReader(new InputStreamReader(getInputStream())); } }