Создать заголовок WS-безопасности в Groovy - PullRequest
0 голосов
/ 14 марта 2019

Мне нужно создать раздел UsernameToken в заголовке SOAP с помощью Groovy, но я не могу найти, как это сделать.Я смотрю на WSLite, но, как я понял, эта библиотека не может работать с заголовком WSS.Мне нужно что-то вроде этого

<wsse:UsernameToken wsu:Id="UsernameToken-1">
            <wsse:Username>testuser</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:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">/KRqhWHKnB66WVTgZ4GBVg==</wsse:Nonce>
            <wsu:Created>2019-02-25T12:50:36.307Z</wsu:Created>
        </wsse:UsernameToken>
    </wsse:Security>
</soapenv:Header>

1 Ответ

0 голосов
/ 19 марта 2019

Я решил использовать шаблон весны ws

compile "org.springframework.ws:spring-ws-security"    

и это помогло мне

def WebServiceTemplate createWsTemplate(String url, String login, String password) {

Wss4jSecurityInterceptor wss4jSecurityInterceptor = new Wss4jSecurityInterceptor()
wss4jSecurityInterceptor.setSecurementActions(WSHandlerConstants.USERNAME_TOKEN)
wss4jSecurityInterceptor.setSecurementUsername(login)
wss4jSecurityInterceptor.setSecurementPassword(password)
wss4jSecurityInterceptor.setSecurementPasswordType("PasswordText")
wss4jSecurityInterceptor.setSecurementUsernameTokenCreated(true)
wss4jSecurityInterceptor.setSecurementUsernameTokenNonce(true)

SaajSoapMessageFactory msgFactory = new SaajSoapMessageFactory(MessageFactory.newInstance())
msgFactory.afterPropertiesSet()
WebServiceTemplate wsTemplate = new WebServiceTemplate(msgFactory)
wsTemplate.setInterceptors(wss4jSecurityInterceptor)
wsTemplate.setDefaultUri(url)
wsTemplate.afterPropertiesSet()
wsTemplate.setMessageSender(sender)

return wsTemplate }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...