Назад | Перейти на главную страницу

Apache2 mod_rewrite ест учетные данные с флагом P

У меня есть внутренний сервер, которому нужно переписать входящие запросы в другой внутренний ящик, по глупым причинам на обеих машинах включена базовая аутентификация. Чтобы обойти два уровня аутентификации и поскольку это только внутренние серверы, я подумал, что могу сделать что-то вроде этого:

RewriteCond %{REQUEST_URI} /api/service
RewriteRule /api/service/(.*) http://uname:pword@actualservice.uri.com/$1 [L,P]

Я ожидаю, что uname: pword будет перенесен на следующий сервер, когда будет применена эта перезапись.

Я думаю, что это НЕ происходит из-за флага «P», но я хочу, чтобы это был прокси-запрос, поскольку браузер, из которого инициируется запрос, не будет положительно реагировать на ответ от другого uri, чем запрос был отправлен.

Спасибо

Один из способов сделать это (я уверен, что есть более простые способы ... но), вы можете выполнить базовую аутентификацию в первом поле, например, http://userxx:5assm@somehost.com/

А затем сгенерируйте требуемый заголовок авторизации примерно так:

<Location /api/service>
Order Deny,Allow
Allow from All
#echo username:password | base64
 RequestHeader set Authorization "Basic ZmFzZ11fef1111111NlbnlpcAo"
ProxyPass http://actualservice.uri.com/api/service
</Location>

и использовал эту команду для генерации хэша base64;

 echo username:password | base64