Apache2 mod_rewrite comendo credenciais com o sinalizador P

1

Eu tenho um servidor interno que precisa reescrever solicitações de entrada para outra caixa interna, por razões estúpidas, ambas as máquinas têm autenticação básica ativada nelas. Para contornar os dois níveis de autenticação, e como esses são apenas servidores internos, achei que poderia fazer algo assim:

RewriteCond %{REQUEST_URI} /api/service
RewriteRule /api/service/(.*) http://uname:[email protected]/$1 [L,P]

Minha expectativa é que uname: pword será carregado ao longo do próximo servidor quando esta reescrita for aplicada.

Acho que o sinalizador 'P' está causando isso NÃO acontecer, mas eu preciso que isso seja uma solicitação por proxy, pois o navegador do qual a solicitação é iniciada não responderá de maneira favorável a uma resposta de um uri diferente da solicitação foi para.

Obrigado

    
por idbentley 30.04.2012 / 17:41

1 resposta

2

Uma maneira de fazer isso (tenho certeza de que existem maneiras mais simples ... mas) é que você pode fazer a autenticação básica na primeira caixa normalmente, por exemplo, http://userxx:[email protected]/

E, em seguida, gere o cabeçalho de Autorização necessário com algo assim:

<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>

e usou este comando para gerar o hash base64;

 echo username:password | base64
    
por 30.04.2012 / 20:04