如何使用proxypassreverse将remote_user变量从apache传递给apache

时间:2015-07-07 09:46:48

标签: apache

我通过IBM IHS访问了Web应用程序,此应用程序是经过Tivoli ldap身份验证的。从这个应用程序,我必须点击应由另一个Apache服务器提供服务的链接,但我必须传递带有请求的用户名,以便其他应用程序服务器将根据从IBM IHS服务器传递的用户名填充数据。我可以通过httpd.conf中的proxypassreverse规则打开另一个链接,但是我无法传递remote_user头变量

规则已添加到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

1 个答案:

答案 0 :(得分:2)

请勿使用以下内容,因为如果REMOTE_USER设置为mod_authn_ntlm(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