JMeter:SOAP消息签名者插件

时间:2017-08-22 06:02:38

标签: soap jmeter ws-security

我正在尝试使用HTTP Request Sampler和SOAP Message Signer插件发送SOAP请求(已签名)。请求适用于SOAPUI。如果我使用相同的参数(对于SOAP消息签名者),它似乎通过JMeter失败。

作为SOAP Request的一部分,Header需要签名。签名时我收到以下错误。谁能告诉我失败的原因?

  

n.c.b.j.m.AbstractWSSecurityPreProcessor:构建WSS标头   o.a.w.d.m.WSSecSignature:开始签名......错误   n.c.b.j.m.AbstractWSSecurityPreProcessor:   org.apache.wss4j.common.ext.WSSecurityException:没有证书   找到用户“cert_alias”进行签名

3 个答案:

答案 0 :(得分:1)

您是否在jmeter密钥库中添加了别名 cert_alias 下的证书?

这就是消息的说法:

  

未找到签名用户“cert_alias”的证书

密钥库位于jmeter / bin文件夹

您可能想尝试这个插件:

答案 1 :(得分:1)

最后,我能够使用插件发送成功的请求。 我使用Signed Header作为SOAP请求的一部分。 插件配置: 密钥库文件:.jks文件的路径 密钥库密码:密码 证书别名 - cert_alias 证书密码 - 证书密码

从SOAP请求中删除签名头后,它工作正常。谢谢你。

答案 2 :(得分:0)

如果您的SOAP端点期望使用客户端证书加密消息,您可以通过将下一行添加到 system.properties 文件来配置JMeter以使用它:

javax.net.ssl.keyStoreType=pkcs12 or jks  
javax.net.ssl.keyStore=/path/to/your/jsk keystore or .p12 certificate
javax.net.ssl.keyStorePassword=your certificate or keystore password

需要JMeter重启才能选择属性。

您也可以通过-D命令行参数传递它们,如:

jmeter -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStore=your-certificate.p12 -Djavax.net.ssl.keyStorePassword=secret

更多信息: