我的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一样,但是我尝试给出完整的文件路径,但是返回了相同的结果。
任何帮助将不胜感激。
首先启用DEBUG / FINE日志记录。它会准确地告诉您问题出在什么地方……可能无法加载您给出的路径。我建议尝试以下方法:
<entry key="signaturePropFile" value="classes/etc/sign.properties"/>
科尔姆
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句