Передача параметров в HTTP-заголовке через запятую для Apache CXF

в 12:58, , рубрики: http-заголовки, java, rest, метки: , ,

Предистория:

Согласно RFC-2616, HTTP header можно передавать кучей разных способов.
Мы использовали вариант КЛЮЧ = <ЗНАЧЕНИЕ-1>,<ЗНАЧЕНИЕ-2>,...,<ЗНАЧЕНИЕ-N>
Библиотека Apache CXF до версии 2.5.8 (включительно) обрабатывала такую ситуацию корректно.

Проблема:

С версии 2.5.9 Apache CXF втихоря «улучшились» и допустимыми признают только КЛЮЧ = <ЗНАЧЕНИЕ>
Ни в документации, ни на форуме апача нет ответа на вопрос:

Как разрешить Apache CXF принимать параметры заголовка HTTP-запроса (HTTP header) через запятую?


Исследование исходных кодов библиотеки указало на решение проблемы.

Решение:

В конфиге beans.xml надо добавить:

<jaxrs:properties>
     <!-- enable comma separated HTTP header values. Example" "X-ListID: 0,100,13,25,16" -->
     <entry key="org.apache.cxf.http.header.split" value="true" />
</jaxrs:properties>

Автор: gis

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js