WSS4J SOAP签名验证无信任库



我需要验证签名的肥皂消息,提取证书并针对LDAP目录验证证书,这使信任存储不必要。我已经使用了WSS4J一段时间了,但总是有本地信任商店。看看官方文档并四处搜索,我找不到对类似于我的方案的任何参考。我想知道在这种情况下是否可以继续使用WSS4J。

是的,您可以将WSS4J用于此用例。WSS4J默认情况下使用SignaturTrustValidator来验证签署证书的信任:

https://github.com/apache/ws-wss4j/blob/master/ws-security-dom/src/main/main/java/java/java/org/apache/wss4j/validate/signature-signaturustvalidator.java

您可以通过:

将自己的实现插入其中

如果您将CXF与WSS4J一起使用,则有一个自定义配置常数,您可以将其设置为签名的验证器实现。

我遇到了相同的问题,并以这种方式解决了:

@EnableWs
@Configuration
public class WsConfiguration extends WsConfigurerAdapter {
@Bean
public Wss4jSecurityInterceptor securityInterceptor() throws Exception {
    Wss4jSecurityInterceptor securityInterceptor = new Wss4jSecurityInterceptor();
    securityInterceptor.setValidationActions("Signature");
    WSSConfig wssConfig = WSSConfig.getNewInstance();
    wssConfig.setValidator(new QName("http://www.w3.org/2000/09/xmldsig#", "Signature"), MySignatureTrustValidator.class);
    securityInterceptor.setWssConfig(wssConfig);
    //the rest of configuration
}

请注意, mySignaturustValidator 必须实现验证器

相关内容

  • 没有找到相关文章

最新更新