2016-05-04 3 views
1

Я использую SpringTemplate Spring 4 с HttpComponents от Jakarta 4.3 для реализации клиента для удаленного веб-сервиса. Клиент использует Basic Auth по защищенной цепи. Все работает отлично, но теперь мы переходим к режиму, в котором имя пользователя для подключения будет зависеть от содержимого запроса.Клиент службы RESTful с данными, не зависящими от данных

До сих пор пул HttpClientConnectionManager, по-видимому, игнорировал учетные данные при определении того, действительно ли существующее соединение является действительным для нового запроса на соединение - оно строго зависит от маршрута. Таким образом, первый вызов удаленной службы отлично работает. Второй вызов возвращается с «недопустимыми учетными данными». Изучение журналов показывает, что оба вызова используют одинаковые заголовки аутентификации.

Любые предложения относительно того, как с этим справиться? Я надеялся, что PoolingHttpClientConnectionManager будет поддерживать именованные пулы, фактически позволяя использовать имя пользователя в качестве имени пула. Кажется, это не так. Я попытался использовать несколько объектов PoolingHttpClientConnectionManager, но фактический пул соединений является общим.

ответ

1

Итак, вернемся к этому 10 месяцев спустя, потому что кому нравится вопрос без ответа?

Мы создали создание отдельного PoolingHttpClientConnectionManager для каждого возможного набора учетных данных. Не красивое техническое решение, но оно сработало.