在Axis2 / Rampart中,如何忽略收件人/响应方的SignatureToken?

时间:2014-05-20 14:53:54

标签: java xml soap axis2 rampart

我发送和接收好的SOAP请求/响应,但响应带有我想忽略的签名令牌。底层的XML很好,可以序列化到相应的Java对象中,但是没有验证它总是抛出的响应令牌:

org.apache.ws.security.WSSecurityException:无法对安全令牌进行身份验证或授权

有没有办法配置Axi2或Rampart,例如在policy.xml或RampartConfig中,忽略响应头中的安全令牌,只是将XML序列化为Java对象?

编辑:我确实有证书在客户端进行验证,但为了论证,我认为我不能。这是另一个问题,如果没有好的方法可以简单地忽略响应验证。

编辑:我没有回答这个问题就解决了我的问题。诀窍是在CryptoConfig的属性中正确设置 truststore 值,以及密钥库属性。我会留下这个问题,因为我仍然对这是否可能感到好奇。

1 个答案:

答案 0 :(得分:2)

您的问题的答案是使用自定义策略验证器 您必须在policy.xml文件中提及此内容

<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 .....");
  }
}