【发布时间】:2021-02-09 06:07:33
【问题描述】:
我正在将 X.509 相互证书身份验证添加到项目中。这里的具体情况是一个客户端(比如说manager)可以访问多个服务实例(servers)。每个server 都有自己的证书。在客户端提供policy.xml 配置时,<encryptionUser> 应设置为存储在客户端信任库中的服务器别名证书。当server 只有一个时这不是问题,但是当客户端需要访问特定的server 时,应该使用适当的server 的公钥进行加密,所以我需要从信任库中提供一个正确的别名。
我正在考虑以编程方式更改每个请求的 Rampart 配置以设置特定的别名,但这看起来不是正确的方法。
我在这里寻找一种标准方法,或者,也许,在policy.xml 中配置它的某种方式
我的客户(manager's)来自policy.xml 的Rampart 配置部分如下
<ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
<ramp:userCertAlias>client</ramp:userCertAlias>
<!-- This should be dynamic -->
<ramp:encryptionUser>server</ramp:encryptionUser>
<ramp:passwordCallbackClass>PasswordProvider</ramp:passwordCallbackClass>
<ramp:signatureCrypto>
<ramp:crypto provider="MerlinCrypto"/>
</ramp:signatureCrypto>
<ramp:encryptionCrypto>
<ramp:crypto provider="MerlinCrypto"/>
</ramp:encryptionCrypto>
</ramp:RampartConfig>
【问题讨论】:
标签: java soap mutual-authentication wss4j rampart