gpt4 book ai didi

java - SignedSupportingTokens wssecurity 策略 cxf 客户端

转载 作者:行者123 更新时间:2023-12-01 12:15:23 28 4
gpt4 key购买 nike

我正在尝试为一个 SOAP 服务组装一个小型 CXF 客户端,该服务在其 wsdl 中具有 SignedSupportingTokens ws-security 策略。我已配置CXF客户端如下

<jaxws:client id="secretService" name="{http:/mySecretServiceEndpoint//}Service" createdFromAPI="true">
<jaxws:properties>
<entry key="ws-security.signature.properties" value="keystore/secret.properties" />
<entry key="ws-security.encryption.properties" value="keystore/secret.properties" />
<entry key="ws-security.timestamp.timeToLive" value="600" />
</jaxws:properties>
</jaxws:client>

不幸的是,它无法发送消息并出现以下错误。

Caused by: org.apache.cxf.ws.policy.PolicyException: None of the policy alternatives can be satisfied.
at org.apache.cxf.ws.policy.EffectivePolicyImpl.chooseAlternative(EffectivePolicyImpl.java:199)
at org.apache.cxf.ws.policy.EffectivePolicyImpl.chooseAlternative(EffectivePolicyImpl.java:192)
at org.apache.cxf.ws.policy.EffectivePolicyImpl.initialise(EffectivePolicyImpl.java:96)
at org.apache.cxf.ws.policy.PolicyEngineImpl.getEffectiveClientRequestPolicy(PolicyEngineImpl.java:205)
at org.apache.cxf.ws.policy.PolicyOutInterceptor.handle(PolicyOutInterceptor.java:98)
at org.apache.cxf.ws.policy.AbstractPolicyInterceptor.handleMessage(AbstractPolicyInterceptor.java:44)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:138)

我想知道 CXF 默认情况下是否支持 SignedSupportingTokens 策略?我是否需要注册一些处理程序或者我是否缺少其他内容?我对 WS-SecurityWS-SecurityPolicy 没有太多经验,任何回复都将受到高度赞赏。

最佳答案

回答我自己的问题,因为有一天它可能会对某人有所帮助! CXF 确实支持 SignedSupportingTokens 以及更多功能,就我而言,服务 WSDL 对于 SignedSupportingTokens 有一个不同的命名空间,CXF 客户端无法理解(无法匹配)。

我能够通过使用 ws-security 拦截器来配置客户端来解决该问题。

关于java - SignedSupportingTokens wssecurity 策略 cxf 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27051467/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com