import com.alibaba.fastjson.JSONObject;
import com.idoipo.infras.gateway.open.model.InvokeLogModel;
import com.idoipo.infras.gateway.open.service.IInvokeLogService;
import com.idoipo.infras.gateway.open.utils.MultiPartFormDateToJson;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;
import org.springframework.stereotype.Component;
import org.springframework.util.StreamUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.Date;
import java.util.Map;
/**
* 接口调用日志记录过滤器
*/
@Component
public class LogRecodePostFilter extends ZuulFilter {
private static final Logger logger = LoggerFactory.getLogger(LogRecodePostFilter.class);
@Autowired
IInvokeLogService invokeLogService;
@Override
public String filterType() {
return FilterConstants.POST_TYPE;//要打印返回信息,必须得用"post"
}
@Override
public int filterOrder() {
return FilterConstants.PRE_DECORATION_FILTER_ORDER + 2;
}
@Override
public boolean shouldFilter() {
RequestContext context = RequestContext.getCurrentContext();
Boolean isSuccess = (boolean) context.get("isSuccess");
return isSuccess;
}
@Override
public Object run() {
try {
logger.info("进入日志记录过滤器");
RequestContext ctx = RequestContext.getCurrentContext();
springcloud zuulfilter 实现get,post日志记录URL+params
最新推荐文章于 2023-01-15 18:59:40 发布
本文介绍了如何使用Spring Cloud ZuulFilter组件来实现对GET和POST请求的日志记录,特别是针对POST请求中multipart/form-data格式的数据处理。
摘要由CSDN通过智能技术生成