package com.sandu.ximon.admin.filter; import com.sandu.ximon.admin.context.CustomerInspectContextHolder; import jodd.util.StringUtil; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.catalina.security.SecurityUtil; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import org.springframework.web.filter.GenericFilterBean; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 管理员访客过滤 * @author chenjiantian */ @Slf4j @Component @Order(Ordered.HIGHEST_PRECEDENCE) public class CustomerInspectContextHolderFilter extends GenericFilterBean { @Override @SneakyThrows public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; try { String customer = request.getHeader("customer"); if (StringUtil.isNotBlank(customer)) { CustomerInspectContextHolder.setTenantId(customer); } filterChain.doFilter(request, response); } finally { CustomerInspectContextHolder.clear(); } } }