Tomcat 6 サーバーで実行される webapp を使用しています。一部のリクエスト(特定のタイプのクライアントから送信されたもの)では、ServletRequestWrapper のメソッド getParameter がすべての CharConversionException ロギングを内部的に処理し、その例外に関するサーバー アクティビティ情報の標準出力を出力します。問題は、機密データを (パスワードとして) ログに記録する場合があることです...たとえば、次のようなログを記録できます。
INFO: Character decoding failed. Parameter [pw] with value [holaãã%20%222522%2] has been ignored. Note that the name and value quoted here may be corrupted due to the failed decoding. Use debug level logging to see the original, non-corrupted values.
java.io.CharConversionException: EOF
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:80)
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:46)
at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:410)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:370)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:217)
at org.apache.catalina.connector.Request.parseParameters(Request.java:2647)
at org.apache.catalina.connector.Request.getParameter(Request.java:1106)
at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:355)
at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:158)
at myClasss (myClass.java:666)
クライアントからの問題であり、クライアントが解決する必要があるため、サーバーの問題を解決するつもりはありません。ログに出力される不正なパラメータに関連付けられた値を「非表示」にするのが楽しみです。私はTomcatロギングシステムとその構成方法の専門家ではありません. )。
私はすでに本番環境でこの ServletRequestWrapper または ServletResponseWrapper を見てきましたか? 、しかし、この内部メッセージを変更する方法についての手がかりはありません.
さて、すべてに感謝します!.
ご挨拶
ビクター