JAX-WS将用户名令牌添加到SOAP-Header

问题描述

我有一个从WSDL文件生成的JAX-WS Client。 到目前为止,设置标头可以使用以下代码进行操作:

    WSBindingProvider bp = (WSBindingProvider) port;
    bp.setoutboundHeaders(
            Headers.create(new QName("http://schemas.xmlsoap.org/ws/2005/08/addressing","To","wsa"),"--To--"),Headers.create(new QName("http://schemas.xmlsoap.org/ws/2005/08/addressing","Action","--Action--"),"MessageID",UUID.randomUUID().toString())
    );

(根据需要)生成以下XML代码段:

    <S:Header>
        <To
            xmlns="http://schemas.xmlsoap.org/ws/2005/08/addressing">--to--
        </To>
        <Action
            xmlns="http://schemas.xmlsoap.org/ws/2005/08/addressing">--action--
        </Action>
        <MessageID
            xmlns="http://schemas.xmlsoap.org/ws/2005/08/addressing">fe1b400a-e724-4486-8618-b1d36a0acbbb
        </MessageID>
    </S:Header>

但是我需要以下链接的Tag,我无法通过Headers.create(...)实现它们:

<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:Usernametoken wsu:Id="PartnerId" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
        <wsse:Username>--username--</wsse:Username>
    </wsse:Usernametoken>
</wsse:Security>

有什么想法可以将其添加标题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)