Jak skonfigurować dyrektywę nginx proxy_pass, która będzie również zawierać podstawowe informacje o uwierzytelnianiu HTTP wysyłane do hosta proxy?
To jest przykład adresu URL, który muszę proxy do:
http://username:[email protected]/export?uuid=1234567890
Ostatecznym celem jest umożliwienie 1 serwerowi prezentowania plików z innego serwera (tego, do którego jesteśmy proxy) bez ujawniania identyfikatora URI serwera proxy. Mam to działające w 90% poprawne po wykonaniu konfiguracji Nginx znalezionej tutaj:
http://kovyrin.net/2010/07/24/nginx-fu-x-accel-redirect-remote/
Muszę tylko dodać uwierzytelnianie podstawowe HTTP, aby wysłać je do serwera proxy
Odpowiedzi:
Jakiś czas temu napisałem na ten temat. Zobacz szczegóły tutaj:
http://shairosenfeld.blogspot.com/2011/03/authorization-header-in-nginx-for.html
Na przykład:
„a2luZzppc25ha2Vk” to „king: isnaked” zakodowany w standardzie base64, aby działał dla
http: // king: [email protected]
Zapoznaj się z postem na blogu, aby uzyskać więcej informacji.
źródło
Pracowałem z odpowiedzią alvosu, ale musiałem wpisać słowo „Basic” w cudzysłowie ciągu base64, aby wyglądało to tak:
źródło
Ustaw autoryzację proxy_set_header „USER_AND_PASS”, gdzie USER_AND_PASS = base64 (user: pass)
źródło
Basic
.Usuń nagłówek autoryzacji, który jest przekazywany przez nginx za pomocą
proxy_set_header Authorization "";
.Skonfigurowałem nginx, aby wykonywał podstawowe uwierzytelnianie, ale
Authorization
nagłówek był przekazywany wproxy_pass
dyrektywie i odbiorca nie mógł obsłużyć tokena.(Zwłaszcza w moim przypadku ten błąd został zwrócony
Reason: No AuthenticationProvider found for org.springframework.security.authentication.UsernamePasswordAuthenticationToken
)źródło