6

我遵循了 Apache Web 策略代理的安装指南,但它总是导致 Web 和应用程序服务器之间出现无限的重定向循环。Firefox 说“页面未正确重定向”,Chrome 认为“此网页存在重定向循环”。设置是端口 80 上的 Apache 2,带有一个小型演示应用程序和 Web 策略代理,以及端口 8080 上的 Tomcat 7 服务器和 OpenAM 服务器(来自 Sun 的前 OpenSSO):

Live HTTP Header Firefox 插件显示策略代理和 OpenAM 服务器(即 Apache 和 Tomcat 服务器)相互重定向,尽管服务器正确设置了 SSO 令牌 Cookie。SSO 令牌 Cookie 的名称具有默认值“iPlanetDirectoryPro”。知道如何解决问题吗?

4

2 回答 2

8

整整一周后,在 Stackoverflow 和OpenAM Mailing list的帮助下,我终于弄明白了。有两个主要问题:缺少日志文件和缺少 cookie 域。安装 OpenAM 服务器和 Web 策略代理很困难,有很多日志文件和许多不同的配置选项。如果您选择了错误的选项,它将不起作用。不知道发生了什么是不可能让它工作的,这只能通过合适的日志文件来确定。

Web 策略代理缺少日志:必须在“Java 属性”文件中设置日志级别。Web 策略代理有两个“Java 属性”文件,OpenSSOAgentBootstrap.properties以及OpenSSOAgentConfiguration.properties. 命名的日志和调试级别com.sun.identity.agents.config.debug.level可以而且必须在两个 (!) 文件中定义,并且应该设置为高级别,all:4或者all:5. 格式很重要。即使您这样做,该AgentConfiguration.properties文件也仅在代理不在集中配置模式下工作时使用。配置文件必须设置为“本地”。

缺少 Cookie 域:在开始设置 OpenAM 服务器时不要忘记输入正确的 Cookie 域,如果缺少,则在之后添加。在 OpenAM 服务器上,如果缺少Configuration > System > PlatformCookie 域值并将其更改为您的域(对于 instace )。.example.com否则浏览器将在重定向过程中丢失您的 cookie。不知何故,我在 OpenAM 服务器上有一个 cookie 域的空条目,我猜是忘记了一个点(example.com而不是.example.com),所以它是无效的(或类似的东西)。

故障排除站点有助于定位问题。

于 2011-06-24T10:20:20.610 回答
1

@0x4a6f4672,您的帖子绝对有帮助。还有一些要添加到您的答案中。以下更改是我必须在配置中执行的操作以使其运行,至少让它在户外运行。

com.sun.identity.agents.config.user.mapping.mode=USER_ID(Dont use HTTP_HEADER)
com.sun.identity.agents.config.user.attribute.name=uid
com.sun.identity.agents.config.user.principal=true(Dont use false)
com.sun.identity.agents.config.user.token=SsoUserHeader(Keep it as per what is specified in you application- in my case alfresco)

现在您不是在集中模式下运行代理,而是在本地模式下,为配置文件属性指定的设置只能通过属性文件进行设置,因此添加以下内容。

com.sun.identity.agents.config.profile.attribute.fetch.mode=HTTP_HEADER
com.sun.identity.agents.config.profile.attribute.mapping[uid]=SsoUserHeader(whatever you want the header to come in browser as)

正如 0x4a6f4672 所说,调试很困难,除非您处于本地模式,因此请立即切换到本地模式并开始跟踪日志并相应地更改属性。

于 2015-05-21T12:02:47.130 回答