Как мне пройти аутентификацию на прокси-сервере из clj-apache-http?
-
23-09-2019 - |
Вопрос
Я пытаюсь начать работу, используя http://github.com/rnewman/clj-apache-http
(http/get (java.net.URI. url)
:headers {"User-Agent" user-agent}
:parameters (http/map->params
{:default-proxy (http/http-host :host "localhost"
:port 8888)})
:as :string)
Проблема в том, что мой прокси (squid) требует аутентификации.Как мне «вставить» свое имя пользователя/пароль в эту библиотеку?
Спасибо!
Нет правильного решения
Другие советы
Добавление следующего в мой словарь заголовков помогло:
"Proxy-Authorization" (str "Basic "
(base64/encode-str "username:password"))
Как сказал Мак, это также можно реализовать с помощью фильтра, но фильтр preemptive-basic-auth-filter не будет работать, поскольку он отправляет заголовки для WWW-авторизации вместо прокси-авторизации.
clj-apache-http имеет фильтр preemptive-basic-auth-filter, который вы можете использовать.Он поддерживает комбинированные строки имени пользователя и пароля в формате «имя:пароль».Использование функции недостаточно документировано, но ее можно найти. здесь.Пример (не проверялся):
(http/get (java.net.URI. url)
:headers {"User-Agent" user-agent}
:parameters (http/map->params
{:default-proxy (http/http-host :host "localhost"
:port 8888)})
:as :string
:filters ((preemptive-basic-auth-filter "name:password")))