Мне нужно иметь возможность отправлять запросы SOAP на сервер из внешней компании. Сообщение SOAP должно быть подписано, а подпись должна быть помещена в заголовок. Для отправки сообщений я использую WebServiceTemplate
от spring-ws, к которому я добавил Wss4jSecurityInterceptor
, который подписывает сообщение. Я получаю следующий результат:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
...
<ds:SignatureValue>gqAR+uNUKsTPN6E7beEePUFN0MJs33whxWC0wBPBcIzWrgP/dPKVxHEuWEKo+zbl/wTYMe8a7S3O
sOkx+RyMWHVFzUrt6ag8GhHmOdNnBHa+Ll8aYFcwOjva2UCNEUg/Jxw6jgSE87ruK+hUD6BPjluO
35NxbMCMYB4XFAqNRKHH7W0PxiFelzKc7r9NRd7KJiLpmmNnwUUdn31gFw77y78pPPaFPO0wWYCb
F3VM3I9iV5FB/dqUxpiEvpEc+D/8cFTlK/AP1KysF9f+pI6gxX0QFTLwTBOuh2A9bLIbWrDHNoHn
8hfCIPlpu8+/jFzJh+MPX560oe4xcO6ZPMThtA==</ds:SignatureValue>
...
</SOAP-ENV:Header>
<SOAP-ENV:Body>
...
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Принимающий сервер возвращает ошибку в этом сообщении, и ответ, который я получил от другой компании, состоял в том, что это было из-за возврата каретки
в подписи. Есть ли способ или параметр, которые я могу изменить, чтобы wss4j или spring-ws не включали возврат каретки?