0

すべての HTTP リクエストを Jetty に記録したいと思います。これは十分に文書化されていますが、リソースが見つかりません。引数の一部をマスクするにはどうすればよいですか。

例えば:

json/users/detail?id=dsgrw543

次のように記録する必要があります。

json/users/detail?id=********

または類似。

主な動機は、ユーザーのプライバシーが危険にさらされる可能性を心配することなく、分析のためにこれらのログを提供できることです。バッチ処理やその他のスクリプトを使用せずにオンラインで実行するのが理想的です。

私は他の認証メカニズム (Cookies/すべての書き込み方法は POST/etc.) を使用しており、既存の URL を変更できないことに注意してください。

これまでのところ、私の唯一のアイデアは、 NCSARequestLogの上にクラスとして実装することです。

それを行うより良い方法は何ですか?

4

1 に答える 1

0

このような単純なユーティリティを作成し、ログに記録している場所ならどこでも使用できます

    Enumeration<String> s = request.getParameterNames();
    String q = "";
    while(s.hasMoreElements()){
        q += s.nextElement() + "=***&";
    }
    String url = request.getServletPath()+(q.length()>0?"?"+q:"");

またはrequest.getRequestedURI()代わりにあるかもしれませんgetServletPath

于 2013-03-08T08:47:15.807 に答える