Java ServletRequestWrapper中CharConversionException日志的处理

Java ServletRequestWrapper中CharConversionException日志的处理,java,servlets,tomcat6,catalina.out,Java,Servlets,Tomcat6,Catalina.out,我正在使用一个运行在Tomcat6服务器上的webapp。 对于某些请求(来自特定类型的客户机),该方法会在内部处理所有CharConversionException日志记录,我认为这是关于该异常的服务器活动信息的标准输出。问题是,有时它可以记录敏感数据(作为密码)。。。例如,它可以记录如下内容: INFO: Character decoding failed. Parameter [pw] with value [holaãã%20%222522%2] has been ignored

我正在使用一个运行在Tomcat6服务器上的webapp。 对于某些请求(来自特定类型的客户机),该方法会在内部处理所有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日志系统以及如何配置它的专家,我访问并阅读了一些资料(和…),但找不到一条线索为我指明了正确的方向(如果有…)

我已经看过了,但是没有关于如何修改这个内部消息的线索

谢谢你做的一切

问候

维克托前两句话:

  • 错误的编码严格来说不是客户机的问题;只是有不同的设置。所以请允许我指出。此外,搜索“servlet筛选器字符编码”将生成一些ServletFilters,这些ServletFilters为getRequestParameter设置正确的请求编码。(获取函数的方式与POST不同!)

  • 结尾的“%2”有点可疑,不是吗


  • 输出看起来像日志输出,事实上,我在Parameters.java中找到了
    org.apache.juli.logging.log
    。这是另一个,似乎基于java.util.logging,您可以在
    org.apache.tomcat.util.http.Parameters=SEVERE

    WEB-INF/classes/logging.properties中将级别设置为致命/错误首先感谢您提供的信息和答案!。是的,事实上,该%2来自一个有缺陷的客户端,我们目前无法修改该客户端。我们在WEB-INF/classes中没有名为logging.properties的文件,但我们可以创建一个文件并附加该行以控制与该类(参数)关联的记录器。我会试一试,看看是否有效。。。我想它一定有用。。。如果这是正确的记录器:D.谢谢!!对不起,伙计,这不起作用:(.BTW,在logging.properties文件中,我们为每个类配置了日志记录级别。。因此org.apache.tomcat.util.http.Parameters的实例将仅在sereve级别进行日志记录?需要注意的是,我目前正在使用tomcat 6I,我看到您正在使用ServletRequestWrapper。可能您已经对请求进行了转换(UTF-8?),包装器会再次执行此操作(在UTF-8中?)。如果进行编码,请尝试将其删除或将其设置为类似Cp1252的无辜值-以尝试。Show myclass。