通过AJP将REMOTE_USER转发给tomcat(例如shibboleth)

时间:2012-12-06 17:24:01

标签: apache authentication tomcat ajp shibboleth

今天我遇到了以下问题: 1.我为基本身份验证配置了apache(需要有效用户);哪个有效。 2.我进一步配置了apache以将某些路径的请求(在我的情况下为/ idp)转发到tomcat servlet(shibboleth IDP)。

结果是,shibboleth IdP(ECP配置文件)告诉我没有设置“REMOTE_USER”(它使用httpRequest.getRemoteUser()方法来检查它;它返回null)。

我尝试了很多东西,比如SetEnv和RewriteRule,但没有成功。

解决方案非常简单,但很难找到...所以我决定将其发布在这里以帮助其他人解决这类问题。

此致 斯蒂芬

1 个答案:

答案 0 :(得分:12)

好的,这是我的解决方案。我发现tomcat需要配置为信任/接受apache2 ...

完成的身份验证

要执行此操作,您必须编辑tomcat的server.xml(应位于/etc/tomcat6/server.xml或类似名称)并将tomcatAuthentication="false"添加到您的<Connector> - 标记中AJP连接。我的Connector标签现在看起来像这样:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
   tomcatAuthentication="false" /> 

现在你只需要重启tomcat ......就完了。

希望这有帮助! ; - )

的Stefan

说明:

“tomcatAuthentication” - “如果设置为true,则认证将在Tomcat中完成。否则,经过身份验证的主体将从本机Web服务器传播并用于Tomcat中的授权。默认值为true。”

引自:http://tomcat.apache.org/tomcat-5.5-doc/config/ajp.html