我正在使用在 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日志系统以及如何配置它的专家,我访问并阅读了一些材料(this和this too ..)但找不到指向正确方向的线索(如果有的话.. )。
我已经看过生产中的这个 ServletRequestWrapper 或 ServletResponseWrapper 了吗?,但没有关于如何修改此内部消息的线索。
好吧,谢谢你的一切!
问候
胜利者