Como faço para me autenticar para um servidor proxy do CLJ-apache-http?
-
23-09-2019 - |
Pergunta
Estou tentando levantar uma corrida usando 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)
O problema é que meu proxy (Squid) requer autenticação. Como faço para "alimentar" meu nome de usuário/senha nesta biblioteca?
Obrigado!
Nenhuma solução correta
Outras dicas
Adicionando o seguinte ao meu dicionário de cabeçalhos fez o truque:
"Proxy-Authorization" (str "Basic "
(base64/encode-str "username:password"))
Como Mac disse-isso também pode ser implementado com um filtro-mas o filtro preventivo-Basic-Authter não funciona porque envia os cabeçalhos para a autorização www em vez de autorização de proxy.
O CLJ-Apache-HTTP possui um filtro preventivo-Basic-Auth-Filter que você pode usar. Ele suporta strings combinados de nome de usuário / senha deste formulário "Nome: senha". O uso da função não está bem documentado, mas pode ser encontrado aqui. Exemplo (não testado):
(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")))