我有通过 IBM IHS 访问的 Web 应用程序,该应用程序经过 Tivoli ldap 验证。在此应用程序中,我必须单击应由另一个 Apache 服务器提供服务的链接,但我必须通过请求传递用户名,以便另一个应用程序服务器将根据从 IBM IHS 服务器传递的用户名填充数据。我可以通过 httpd.conf 中的 proxypassreverse 规则打开其他链接,但无法传递 remote_user header 变量
规则已添加到 httpd.conf
ProxyPass /ebill_testselfcare http://10.243.97.24/ebill_testselfcare
ProxyPassReverse /ebill_testselfcare http://10.243.97.24/ebill_testselfcare
RewriteEngine on
RewriteCond %{IS_SUBREQ} ^false$
RewriteCond %{LA-U:REMOTE_USER} (.+)
RewriteRule .* - [E=PROXY_USER:%{LA-U:REMOTE_USER}]
RequestHeader set REMOTE_USER %{PROXY_USER}e
最佳答案
请勿使用以下内容,因为如果使用 mod_authn_ntlm 等模块设置 REMOTE_USER(对于本地计算机的 ntlm,请参阅 https://support.microsoft.com/en-us/kb/896861),您将在执行阶段遇到麻烦。
RewriteCond %{LA-U:REMOTE_USER} (.+)
RewriteRule . - [E=RU:%1]
RequestHeader set X-Remote-User %{RU}e
改用以下方法:
RequestHeader set X-Remote-User expr=%{REMOTE_USER}
还有一个使用 mod_ssl 的解决方案
RequestHeader set X-Remote-User %{REMOTE_USER}s
关于apache - 如何使用 proxypassreverse 将remote_user变量从apache传递到apache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31265187/