Sun GlassFish Enterprise Server 2.1 发行说明

Enterprise Server 不支持 auth-passthrough Web Server 6.1 附加软件 (6188932)

说明

Sun GlassFish Enterprise Server 2.1 添加了对 Sun GlassFish Enterprise Server Enterprise Edition 7.1 中可用的 auth-passthrough 插件功能所提供的功能的支持。但是,在 Enterprise Server 2.1 中,auth-passthrough 插件功能的配置有所不同。

Enterprise Server Enterprise Edition 7.1 中的 auth-passthrough 插件功能在双层部署方案中非常有用,其中:

在这种网络体系架构中,客户机连接到前端 Web 服务器,而该 Web 服务器配置有 service-passthrough 插件功能,会将 HTTP 请求转发到代理的 Application Server 实例以供处理。Application Server 只能从 Web 服务器代理接收请求,而决不会从任何客户机主机接收请求。因此,当部署在代理的 Application Server 实例上的任何应用程序查询客户机信息时,该应用程序将收到代理主机的信息(例如,当该应用程序查询客户机 IP 地址时,会收到代理主机的 IP),这是因为代理主机才是中继请求的真正发出主机。

解决方法

在 Application Server Enterprise Edition 7.1 中,可以在代理 Application Server 实例上配置 auth-passthrough 插件功能,以使该实例上所部署的所有应用程序可以直接获得远程客户机的信息,就像代理 Application Server 实例直接收到请求那样,而不是通过运行 service-passthrough 插件的中间 Web 服务器接收。

在 Enterprise Server 2.1 中,可以通过将 domain.xml<http-service> 元素的 authPassthroughEnabled 属性设置为 TRUE 来启用 auth-passthrough 功能,如下所示:


<property name="authPassthroughEnabled" value="true"/>

Application Server Enterprise Edition 7.1 中的 auth-passthrough 插件功能的安全注意事项也适用于 Enterprise Server 2.1 中的 authPassthroughEnabled 属性。由于 authPassthroughEnabled 可以覆盖可能用于进行验证的信息(例如,请求的来源 IP 地址或 SSL 客户机证书),因此,必须只允许可信的客户机或服务器连接到 authPassthroughEnabled 设置为 TRUE 的 Enterprise Server 2.1 实例。作为一项预防措施,建议仅将公司防火墙之后的服务器的 authPassthroughEnabled 设置为 TRUE,而不要将可通过 Internet 访问的服务器的 authPassthroughEnabled 设置为 TRUE。

请注意,当代理 Web 服务器已配置了 service-passthrough 插件并且将请求转发到 authPassthroughEnabled 设置为 TRUE 的 Enterprise Server 实例时,Web 服务器代理上可能启用了 SSL 客户机验证,而在代理的 Enterprise Server 实例上却禁用了该验证。在此情况下,代理的 Enterprise Server 实例仍会将请求当作通过了 SSL 验证,并向部署在其上的发出请求的所有应用程序提供客户机 SSL 证书。