如何在记录SOAP消息时忽略base64binary字段?

时间:2011-09-20 09:58:35

标签: java xml logging spring-ws

我使用Spring的SoapEnvelopeLoggingInterceptor来记录SOAP请求/响应。

某些请求/响应包含base64Binary个字段,占用了日志文件中的大量空间,我不需要为了我的目的而记录它。

深入研究SoapEnvelopeLoggingInterceptor的代码我可以看到使用的java.xml.transform.Transformer是这样创建的:

Transformer transformer = createTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transformer.setOutputProperty(OutputKeys.INDENT, "no");
return transformer; 

我可以在Transformer上设置一些属性,以防止它打印出base64Binary字段的内容吗?或者我可以配置或覆盖的任何其他内容以防止它被记录?

1 个答案:

答案 0 :(得分:0)

我不知道Transformer,但是我认为Base64字段的大写和小写字母数量大致相等。普通文本往往会有更多小写或全部大写。您可以通过这种方式确定差异。

还有一些标点符号从未出现在Base64中。看到其中任何一个都会告诉你该字段不是Base64。