package com.kidgrow.zuul.filter; import com.kidgrow.common.constant.CommonConstant; import com.kidgrow.common.utils.AddrUtil; import com.kidgrow.log.monitor.PointUtil; import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; import eu.bitwalker.useragentutils.UserAgent; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* * @Description: 请求统计分析埋点过滤器
* @Project:
* @CreateDate: Created in 2020/2/21 13:33
* @Author: liuke */ @Slf4j @Component public class RequestStatisticsFilter extends ZuulFilter { @Override public String filterType() { return FilterConstants.PRE_TYPE; } @Override public int filterOrder() { return 0; } @Override public boolean shouldFilter() { return true; } @Override public Object run() { RequestContext ctx = RequestContext.getCurrentContext(); HttpServletRequest req = ctx.getRequest(); UserAgent userAgent = UserAgent.parseUserAgentString(req.getHeader("User-Agent")); //埋点 PointUtil.debug("0", "request-statistics", "ip=" + AddrUtil.getRemoteAddr(req) + "&browser=" + userAgent.getBrowser() + "&operatingSystem=" + userAgent.getOperatingSystem()); ctx.addZuulRequestHeader(CommonConstant.USER_AGENT_BROWSER, userAgent.getBrowser().toString()); ctx.addZuulRequestHeader(CommonConstant.USER_AGENT_SYSTEM, userAgent.getOperatingSystem().toString()); ctx.addZuulRequestHeader(CommonConstant.USER_AGENT_IP, AddrUtil.getRemoteAddr(req)); return null; } }