我正在使用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字段的内容吗?还是我可以配置或覆盖以防止其被记录的其他任何内容?

最佳答案

我不了解Transformer,但是我认为Base64字段将具有大致相等数量的大写和小写字母。普通文本将倾向于具有更多的小写字母或全部为大写字母。您也许可以通过这种方式确定差异。

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

关于java - 记录SOAP消息时如何忽略base64binary字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7483344/

10-11 07:32