我发送和接收好的SOAP请求/响应,但响应带有我想忽略的签名令牌。底层的XML很好,可以序列化到相应的Java对象中,但是没有验证它总是抛出的响应令牌:
org.apache.ws.security.WSSecurityException:无法对安全令牌进行身份验证或授权
有没有办法配置Axi2或Rampart,例如在policy.xml或RampartConfig中,忽略响应头中的安全令牌,只是将XML序列化为Java对象?
编辑:我确实有证书在客户端进行验证,但为了论证,我认为我不能。这是另一个问题,如果没有好的方法可以简单地忽略响应验证。 编辑:我没有回答这个问题就解决了我的问题。诀窍是在CryptoConfig的属性中正确设置 truststore 值,以及密钥库属性。我会留下这个问题,因为我仍然对这是否可能感到好奇。答案 0 :(得分:2)
您的问题的答案是使用自定义策略验证器
<ramp:policyValidatorCbClass>xx.yy.zz.CustomPolicyValidator</ramp:policyValidatorCbClass>
public class CustomPolicyValidator implements PolicyValidatorCallbackHandler{
public
void validate(ValidatorData data, Vector results) throws RampartException {
System.out.println("Put your own validation here .....");
}
}