Sun Java System Application Server 9.1 高可用性管理指南

结合使用会话故障转移和单点登录

在单个应用程序服务器实例中,如果一个应用程序验证了用户,则运行在同一个实例上的其他应用程序不会对用户进行重新验证。这称为单点登录。有关更多信息,请参见《Sun Java System Application Server 9.1 Developer’s Guide》中的“User Authentication for Single Sign-on”

为了使 HTTP 会话故障转移到群集中另一个实例后该功能仍然可用,必须将单点登录信息保留在 HADB 中。要保留单点登录信息,请首先启用服务器实例和 Web 容器的可用性,然后启用单点登录状态故障转移。


注 –

HADB 软件随 Sun Java System Application Server 的 Application Server 独立分发提供。有关 Sun Java System Application Server 的可用分发的信息,请参见《Sun Java System Application Server 9.1 Installation Guide》中的“Distribution Types and Their Components”。HADB 功能仅在企业配置文件中可用。有关配置文件的信息,请参见《Sun Java System Application Server 9.1 管理指南》中的“用法配置文件”


可以通过管理控制台在“可用性服务”的“Web 容器可用性”选项卡中启用单点登录状态故障转移,如为 Web 容器配置可用性中所述。也可以使用 asadmin set 命令将配置的 availability-service.web-container-availability.sso-failover-enabled 属性设置为 true。

例如,按如下所示使用 set 命令,其中 config1 为配置名称:

asadmin set --user admin --passwordfile password.txt 
--host localhost --port 4849 
config1.availability-service.web-container-availability.
sso-failover-enabled="true"

单点登录组

可以通过单个名称和密码的组合进行访问的应用程序组成了单点登录组。对于与应用程序(是单点登录组的一部分)相对应的 HTTP 会话,如果其中一个会话超时,其他会话并不会失效,并且仍然可用。这是因为一个会话的超时不应影响其他会话的可用性。

作为这个行为的推论,如果一个会话超时并且您尝试从运行该会话的同一浏览器窗口访问相应的应用程序,则您无需再次进行验证。但是,将创建一个新的会话。

以属于含有其他两个应用程序的单点登录组的购物车应用程序为例。假设其他两个应用程序的会话超时值大于购物车应用程序的会话超时值。如果购物车应用程序的会话超时,并且您尝试从运行该会话的同一浏览器窗口运行购物车应用程序,则您无需再次进行验证。但是,前一个购物车将丢失,并且您必须创建一个新的购物车。即使运行购物车应用程序的会话已超时,其他两个应用程序也会继续照常运行。

类似地,可假定与其他两个应用程序中的任何一个应用程序对应的会话超时。当从运行该会话的同一浏览器窗口连接应用程序时,您无需再次进行验证。


注 –

此行为仅适用于会话超时情况。如果启用了单点登录,并且您使用 HttpSession.invalidate() 令其中一个会话失效,则属于单点登录组的所有应用程序的会话都将失效。如果您尝试访问属于单点登录组的任一应用程序,则需要再次进行验证,系统将为访问该应用程序的客户机创建一个新的会话。