Безопасно ли добавлять заголовки с полезной нагрузкой запроса в вызов веб-службы? - PullRequest
0 голосов
/ 12 марта 2019

Интеграция с веб-сервисом - как получить доступ к объекту запроса в классе ответа?

Мы используем входящий http-шлюз

<int-http:outbound-gateway request-channel="RequestChannel" url="${test.url}" expected-response-type="java.lang.String" http-method="POST" reply-channel="ResponseChannel"></int-http:outbound-gateway>

У меня аналогичное требование: я добавляю полезную нагрузку запроса в заголовки и выполняю вызов веб-службы. У меня есть конфиденциальная информация в моем запросе и насколько она безопасна, когда я передаю данные по сети. Есть ли другие подход, которому я могу следовать, чтобы получить доступ к объекту запроса.

1 Ответ

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

Ситуация такова, что заголовки такого типа по умолчанию не передаются через вызов веб-службы.

Если вы не сопоставите свое имя заголовка в:

<xsd:attribute name="mapped-request-headers" type="xsd:string">
            <xsd:annotation>
                <xsd:documentation><![CDATA[
Comma-separated list of names of SOAP Headers to be mapped from the SOAP request into the MessageHeaders.
This can only be provided if the 'header-mapper' reference is not being set directly. The values in
this list can also be simple patterns to be matched against the header names (e.g. "foo*" or "*foo").
                        ]]></xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>

он не будет включен ни в целевой SOAP-запрос, ни в заголовки HTTP.

Таким образом, полностью безопасно сохранять конфиденциальные данные в заголовках перед выполнением вызова веб-службы и восстанавливать эти данные после получения ответа.

Хотя вам определенно нужно подумать об удалении этого заголовка в каком-то месте после его использования. Некоторые другие компоненты могут не ограничивать передачу заголовков.

UPDATE

В случае <int-http:outbound-gateway> по умолчанию существует DefaultHttpHeaderMapper, который настроен только для сопоставления некоторых стандартных HTTP-заголовков на основе запросов. Пользовательские заголовки конечного пользователя не отображаются по умолчанию. По сути, так же, как я описал для веб-служб.

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