Jsf 带有参数的登录站点

Jsf 带有参数的登录站点,jsf,Jsf,我们有一个jsf应用程序,有一个普通的登录站点。现在我们必须将这个应用程序与另一个应用程序集成,我的问题是在两个应用程序之间传递参数。假设一个客户机在一个应用程序中有一个ID,我必须从第二个应用程序加载登录页,我认为从第一个应用程序向第二个应用程序通知客户机的最简单方法是加载带有参数的登录页,该参数是第一个应用程序的客户机ID 另一方面,我的第二个应用程序必须独立运行,因此我需要两个登录页面,一个没有参数,一个有参数。这种方法甚至是可能的,或者还有另一种方法可以做到这一点。第二个应用程序可以有一

我们有一个jsf应用程序,有一个普通的登录站点。现在我们必须将这个应用程序与另一个应用程序集成,我的问题是在两个应用程序之间传递参数。假设一个客户机在一个应用程序中有一个ID,我必须从第二个应用程序加载登录页,我认为从第一个应用程序向第二个应用程序通知客户机的最简单方法是加载带有参数的登录页,该参数是第一个应用程序的客户机ID


另一方面,我的第二个应用程序必须独立运行,因此我需要两个登录页面,一个没有参数,一个有参数。这种方法甚至是可能的,或者还有另一种方法可以做到这一点。

第二个应用程序可以有一个带有两种不同表单的登录页面


您可以作为会话属性的一部分从第一个应用程序传递一些ID,并在第二个应用程序的登录页面中获取该会话属性。在这里,您可以检查是否获得会话属性(是否为null),并根据需要呈现相关表单。相反,如果一个表单直接点击第二个应用程序的登录页面,则该会话属性将不存在,您可以根据需要呈现另一个表单

您不能在两个不同的应用程序之间共享会话。在我看来,您将参数从第一个应用程序传递到第二个应用程序的策略是正确的

如果您想共享登录,那么另一种方法是在第一个应用程序中的加密cookie中添加登录详细信息,当您重定向到另一个应用程序时,第二个应用程序可以基于加密cookie验证登录

两个应用程序应在同一个域中运行以接受cookie(例如.xyz.com)


这就是大多数SSO(单点登录)应用程序使用LTPA令牌作为cookie共享会话的方式。

如果它们运行在同一服务器和域上,则可以共享会话。我们可以在两个web应用程序之间共享会话吗?我的理解是,一些应用服务器通过序列化和反序列化集群之间的会话来提供这一点,但这只适用于部署在多个集群上的同一应用程序。如前所述,如果它们运行在同一服务器和域上,则可以共享会话。