![](/img/trans.png)
[英]CXF Logging request & response with content filtering or masking soap fields
[英]Masking Sensitive Data in CXF Logging SOAP Requests
使用 CXF 调用 SOAP 网络服务后,CXF 客户端记录 SOAP 请求消息,密码可见! 我想从 CXF 客户端日志中隐藏密码等敏感数据。
这是我在日志中得到的:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<runReport xmlns="http://xmlns.oracle.com/oxp/service/MYSERVICE">
<userID>username</userID>
<password>mypassword</password>
</runReport>
</soap:Body>
</soap:Envelope>
我想要的只是将mypassword
替换为**********
我尝试了这个解决方案,但它不适用于我的 CXF 版本,因为它使用的是旧版本的 CXF。
我真的看到了很多例子,有的扩展了 LoggingOutInterceptor,有的扩展了 AbstractSoapInterceptor,有的扩展了 PhaseInterceptorChain 等等……我真的不知道从哪里开始,我找不到关于这件事的任何文档。
任何帮助,文档链接将不胜感激!
我解决了这个扩展 LoggingInInterceptor 的问题,并在方法 addSensitiveElementNames 中添加了我想隐藏的单词,对于标头,他们有sensitiveProtocolHeaderNames 方法来执行相同的操作。
public class MyLogIn extends LoggingInInterceptor {
public void handleMessage(Message message) throws Fault {
addSensitiveElementNames(Set.of("description"));
super.handleMessage(message);
}
}
我在这个网站上找到了一些信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.