Дочерний элемент SoapHeaderElement?

Есть ли способ вложить/добавить дочерние элементы в SoapHeaderElement? Я огляделся безрезультатно. Нужно добавить заголовок мыла безопасности со стандартными Security, UsernameToken, Username и Password.

Подобные сообщения, которые я просмотрел:

Добавьте дочерние элементы в пользовательский заголовок SOAP в Spring- WS

Как добавить дочерний элемент в заголовок мыла в java

Что мне нужно добавить в конверт SOAP:

<soapenv:Header>
    <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
        <wsse:UsernameToken wsu:Id="">
            <wsse:Username></wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"></wsse:Password>
        </wsse:UsernameToken>
    </wsse:Security>
</soapenv:Header>

Вместо этого я попытался выполнить приведение к SOAPHeaderElement, поскольку на самом деле у него есть метод addChild, но получаю ошибку приведения:

java.lang.ClassCastException: org.springframework.ws.soap.axiom.AxiomSoapHeaderElement cannot be cast to javax.xml.soap.SOAPHeaderElement

Любое исправление этой ошибки приведения или обходной путь в противном случае?


person user7674254    schedule 28.08.2019    source источник
comment
Предполагая, что вы используете Spring-WS, вы должны правильно настроить перехватчик безопасности, и они будут добавлены автоматически. Вы не должны вручную возиться с добавлением заголовков в целом.   -  person M. Deinum    schedule 28.08.2019
comment
Настроил Wss4jSecurityInterceptor для обработки дополнительных заголовков безопасности. Гораздо более чистый срез, чем ручной ввод. Спасибо.   -  person user7674254    schedule 30.09.2019