我的 SOAP 服务器正在接收必须理解标头设置为 1 的 SOAP 消息。
为了理解标头,我使用了 wss4j 拦截器。
我的 sign.properties 文件是:
org.apache.ws.security.crypto.provider=org.apache.wss4j.common.crypto.Merlin
org.apache.ws.security.crypto.merlin.truststore.type=jks
org.apache.ws.security.crypto.merlin.truststore.password=changeit
org.apache.ws.security.crypto.merlin.truststore.file=keystore/truststore.jks
我的端点 xml:
<jaxws:inInterceptors>
<bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
<constructor-arg>
<map>
<entry key="action" value="Timestamp Signature"/>
<entry key="signaturePropFile" value="XXXXXX/WEB-INF/classes/etc/sign.properties"/>
<entry key="passwordCallbackClass" value="XX.XX.XX.XXXXXX.lifecycleapp.UTPasswordCallback"/>
</map>
</constructor-arg>
</bean>
</jaxws:inInterceptors>
但是我收到错误“org.apache.wss4j.common.ext.WSSecurityException:没有提供加密属性文件来验证签名”
我假设它就像没有正确处理 signaturePropFile 一样简单,但我尝试提供完整的文件路径,但返回了相同的结果。
任何帮助将不胜感激。