3

我有一个 IBM HTTP Web Server 设置作为 WebSphere 应用程序服务器的反向代理。我们使用 Oracle Access Manager 进行用户身份验证。IHS 服务器上还运行着一个 Oracle Webgate 来拦截请求并根据 Oracle 策略检查它们。

我可以看到身份验证通过,Oracle 将 HTTP 标头 OAM_REMOTE_USER 中所需的值传回。问题是,在过程中的某个时刻,该标头没有传递到 WebSphere Application Server。

Oracle Webgate 正在监视端口 8443,但我不明白这是否意味着 Web 服务器或应用程序服务器,因为两者都在同一台物理机器上并且具有相同的服务器名称。如果我只是在 Web 服务器上为 8443 创建虚拟主机,而不在应用服务器上创建端口,则标头将正确通过。这样做的问题是我必须使用 PreserveProxyHeader 请求通过 WebGate 8443 端口,因此在身份验证后它会返回在端口 8443 上查找我的应用程序,该端口在 Web 服务器上不存在。它可以在端口 8443 上找到我的应用程序的唯一方法是,如果我还在应用服务器上为该端口添加一个端口,该端口包含应用程序。

我想我很难理解的主要事情是我是否需要在 HTTP Server 和 App Server 上定义 Webgate 监控的端口,或者它是否应该只在 HTTP Server 端。似乎无论我做什么,在某些时候,请求都会从 HTTP 服务器重定向到应用服务器,并去除那里的任何 OAM HTTP 标头。我已经设法通过从应用服务器中删除 8443 端口来防止它们丢失,但现在我的应用无法映射到。

这是 WebSphere App Server 8.0 和 IBM HTTP Server 8.0.0.5。

4

1 回答 1

1

在管理控制台中,单击服务器 > 服务器类型 > Web 服务器 > web_server_name > 插件属性 > 请求路由。禁用“删除特殊标题”。重新生成您的插件配置 XML,并重新分发它。

于 2013-08-25T19:54:16.323 回答