2016-10-06 1 views
0

스프링 부트 버전 1.3.3을 사용하고 있습니다. 내장 된 바람둥이.spring boot embedded tomcat 모든 Tomcat 요청에 로그를 추가합니다.

각 웹 요청에 대해 웹 요청을 가로 채고 요청을 처리하는 방법을 알고 싶습니다.

내 솔직히 말해서 기본 서블릿 빈 또는 메소드를 재정의 할 수 있습니까? 나는 이것에 대해 많이 모른다.

질문을 구체적으로 작성하십시오. 모든 웹 요청에 대해 어떻게 다음 코드를

@Override 
public void someGenericWebParentRequest(Servlet servletRequest){ 
    log.info("custom log called"); 
    MDC.put("host-name", System.getenv("HOSTNAME")); // kibana hostname filter added 

    // whatever code you fancy etc :-)  

    return servletRequest; // continues onto web target controller 
} 

답변

2

할 것입니다 당신은) (서블릿 필터를 사용하고 doFilter에 차단 요청을 추가 할 수 있습니다. 스프링 컨텍스트에 추가하려면 @Component를 추가하십시오.

이 샘플을 참조하십시오.

@Component 
public class SecurityFilter implements Filter{ 
    @Override 
    public void init(FilterConfig filterConfig) throws ServletException { 

    } 

    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
     //you can intercept request and response here 
     System.out.println("###### security filter "); 
     chain.doFilter(request, response); 
    } 

    @Override 
    public void destroy() { 

    } 
} 
+0

감사합니다. 대답을 받아 들였다. 나는 봄 애플 리케이션에 http 요청에 대한 방화벽의 일종처럼이 필터 주위에 한 번 둘러 보셨나요? –

+0

그래, 일종의,하지만 서블릿 (뿐만 아니라 봄 애플 리케이션) HTTP 요청, 봄에 거기에 기본 서블릿 dispatcherservlet라는 기억하시기 바랍니다 –