2016-10-06 9 views
0

私は春のブートバージョン1.3.3を使用しています。埋め込みのTomcatで。spring boot embedded tomcatすべてのTomcatリクエストにログを追加します

各Webリクエストに対して、どのようにWebリクエストをインターセプトしてカスタムコードを実行するのかを知りたいと思います。

私の勘違いは、いくつかのデフォルトのサーブレットBeanまたはメソッドをオーバーライドすることですか?私はこれについて多くを知らない。

質問を具体的にする。どのように私は次のコード

@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(中インターセプト要求を追加することができ、すべてのWeb要求に対する。 Spring Contextに追加するには、@ 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 –

関連する問題