java - 错误: Username Token Created policy not enforced

标签 java web-services security cxf cxf-client

我正在开发基于 CXF 的服务和客户端。 并使用 wsdl 中定义的策略文件在服务器端实现用户名密码安全。这是配置:

<wsp:Policy wsu:Id="policy.Security" xmlns:wsp="http://www.w3.org/ns/ws-policy">
  <wsp:ExactlyOne>
    <wsp:All>
        <sp:SupportingTokens>
            <wsp:Policy>
                <sp:UsernameToken
                        sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient"
                    wsp:Optional="false" wsp:Ignorable="false">
                    <wsp:Policy>
                        <sp:WssUsernameToken10 />
                        <sp13:Created />
                        <sp13:Nonce />
                    </wsp:Policy>
                </sp:UsernameToken>
            </wsp:Policy>
        </sp:SupportingTokens>
    </wsp:All>
  </wsp:ExactlyOne>
</wsp:Policy>

客户端配置:

<jaxws:client
    xmlns:tns="http://ws.soa.com/service/offer/XYZ/"
    name="XYZPort" address="${xyz.endPoint}"
    serviceClass="com.soa.ws.service.offer.XYZ.XYZPortType"
    wsdlLocation="${xyz.wsdlLocation}" serviceName="tns:xyzService" >
    <jaxws:properties>
        <entry key="ws-security.username" value="${xyz.auth.username}" />
        <entry key="ws-security.callback-handler" value-ref="xyzPasswordCallback" />
    </jaxws:properties>
    <jaxws:inInterceptors>
    <ref bean="logInBound" />
    </jaxws:inInterceptors>
    <jaxws:outInterceptors>
    <ref bean="logOutBound" />      
    </jaxws:outInterceptors>
</jaxws:client>

尝试访问服务时收到以下错误:

由以下原因引起:javax.xml.ws.soap.SOAPFaultException:无法满足这些策略替代方案: { http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702 }UsernameToken:用户名 token 创建策略未强制执行 在 org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:157)

任何人都可以指导如何解决这个问题吗?

最佳答案

您可能使用的是旧版本的 CXF。此问题已修复:

https://issues.apache.org/jira/browse/CXF-6051

关于java - 错误: Username Token Created policy not enforced,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36752905/

相关文章:

security - Meteor 和 Paypal 集成

java - loadClass(String name) 和 loadClass(String name, boolean resolve) 的区别

php - 如何访问 Ratchet php 周期性循环和客户端在应用程序内发送?

php - 这在PHP中是一个很好的哈希密码功能吗?如果没有,为什么不呢?

asp.net - 每个 AuthzInitializeContextFromSid 错误 110 表示什么? "While trying to retrieve the authorization groups, an error (110) occurred."

c# - 服务调用在主线程中有效,但在多线程时崩溃

java - 尝试从 Web 下载图像时出现 FileNotFoundException

java - <mapped-superclass> 中的 JPA ORM.xml 映射文件无法将 <basic> 放在一起 <id > 或 <version >

java - 使用流通过 Builder 从 csv 文件创建对象

java - 免费网络服务返回城市名称、城市代码和时区