5

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

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

我尝试了很多类似 SetEnv 和 RewriteRule 的东西,但没有成功。

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

问候斯特凡

4

1 回答 1

12

好的,这是我的解决方案。我发现需要将 tomcat 配置为信任/接受 apache2 完成的身份验证...

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

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

现在你只需要重新启动tomcat ...完成。

希望这可以帮助!;-)

斯特凡

解释:

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

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

于 2012-12-06T17:24:00.890 回答