我正在使用 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/