Java 如何将SOAP安全头(UsernameToken)信息添加到代码优先的Webservice生成的WSDL中

Java 如何将SOAP安全头(UsernameToken)信息添加到代码优先的Webservice生成的WSDL中,java,web-services,soap,wsdl,cxf,Java,Web Services,Soap,Wsdl,Cxf,我正在使用ApacheCxf+Spring开发代码优先的Web服务。我的web服务希望UsernameToken出现在SOAP请求头中,以便对调用客户端进行身份验证。 我的问题是,有没有办法在Java代码或配置文件中的某个地方添加SOAP安全头(UsernameToken)定义,以便生成的WSDL包含安全性(UsernameToken)?请给我一些建议 非常感谢:)有关所需令牌的信息可以使用WS-Policys在WSDL中发布。对于用户名令牌,我使用以下策略: <wsp:Policy ws

我正在使用ApacheCxf+Spring开发代码优先的Web服务。我的web服务希望UsernameToken出现在SOAP请求头中,以便对调用客户端进行身份验证。 我的问题是,有没有办法在Java代码或配置文件中的某个地方添加SOAP安全头(UsernameToken)定义,以便生成的WSDL包含安全性(UsernameToken)?请给我一些建议


非常感谢:)

有关所需令牌的信息可以使用WS-Policys在WSDL中发布。对于用户名令牌,我使用以下策略:

<wsp:Policy wsu:Id="UP_policy" xmlns:wsp="http://www.w3.org/ns/ws-policy"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <sp:SupportingTokens
        xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
        <wsp:Policy>
            <sp:UsernameToken
                sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
                <wsp:Policy>
                    <sp:WssUsernameToken11 />
                </wsp:Policy>
            </sp:UsernameToken>
        </wsp:Policy>
    </sp:SupportingTokens>
</wsp:Policy>

有关使用CXF配置WS-SecurityPolicy以及如何处理任何WS-Policy的更多信息,请访问。

Hi@dawid pytel感谢您的帮助,终于让它工作了,很抱歉响应太晚。迟做总比不做强。很乐意帮忙:D
<wsdl:definitions ...>
    ...
    <wsdl:service name="GreeterService">
        <wsdl:port binding="tns:GreeterServiceSoapBinding" name="GreeterPort">
            <soap:address location="http://localhost:9000/SoapContext/GreeterPort"/>
        </wsdl:port>
        <wsp:PolicyReference URI="#UP_policy"/>
    </wsdl:service>
    <wsp:Policy xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" wsu:Id="UP_policy">
        <sp:SupportingTokens xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
            <wsp:Policy>
                <sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
                    <wsp:Policy>
                        <sp:WssUsernameToken11/>
                    </wsp:Policy>
                </sp:UsernameToken>
            </wsp:Policy>
        </sp:SupportingTokens>
    </wsp:Policy>
</wsdl:definitions>