拦截请求
拦截器
package cn.gilight.dms.interceptor;
import cn.gilight.dms.util.StringUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/***
* @ClassName OptLogAspect
* @Description: 接口拦截器
* @Author douxiaoliang
* @Date 2019/7/16
* @Version V1.0
**/
@Component
public class OptLogAspect implements HandlerInterceptor {
private static Logger logger = LoggerFactory.getLogger(OptLogAspect.class);
@Override
public boolean preHandle(HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse, Object o) {
try {
Map ParameterMap = httpServletRequest.getParameterMap();
String url=httpServletRequest.getRequestURI();
BufferedReader reader = null;
reader = new BufferedReader(new
InputStreamReader(httpServletRequest.getInputStream()));
StringBuffer body = new StringBuffer();
String str = “”;
while ((str = reader.readLine()) != null){
body.append(StringUtils.trimWhitespace(str));
}
Map reqMap = new HashMap();
Set<Map.Entry<String,String[]>> entry = ParameterMap.entrySet();
Iterator<Map.Entry<String,String[]>> it = entry.iterator();
while (it.hasNext()){
Map.Entry<String,String[]> me = it.next();
String key = me.getKey();
String value = me.getValue()[0];
reqMap.put(key,value);
}
String queryString = new ObjectMapper().writeValueAsString(reqMap);
logger.info(“url:{}",url);
logger.info(“param:{}",queryString);
logger.info(“body:{}",body);
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView)
throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception
{
}
}
启动类
package cn.gilight.dms;
import cn.gilight.dms.interceptor.OptLogAspect;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@MapperScan(“cn.gilight.dms.dao”)
//@EnableCaching //缓存支持
@SpringBootApplication
@EnableAspectJAutoProxy(proxyTargetClass=true)
public class DmsApplication implements WebMvcConfigurer {
private static Logger logger =
LoggerFactory.getLogger(DmsApplication.class);
public static void main(String[] args) {
SpringApplication.run(DmsApplication.class, args);
logger.info("===启动成功===”);
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
//注册自定义拦截器,添加拦截路径和排除拦截路径
registry.addInterceptor(new OptLogAspect())
.addPathPatterns(”/***”)
.excludePathPatterns("/skip/***");
}
}