我们有一个 jsf 应用程序,带有一个正常的登录站点。现在我们必须将此应用程序与另一个应用程序集成,我的问题是在两个应用程序之间传递参数。假设客户端在一个应用程序中有一个 ID,我必须从第二个应用程序加载登录页面,我认为从第一个应用程序通知第二个应用程序有关客户端的最简单方法是使用参数加载登录页面,即第一个应用程序的客户端 ID。
另一种方式,我的第二个应用程序必须独立运行,所以我需要两个登录页面,一个没有参数,一个有参数。这种方式甚至是可能的,或者有另一种方法可以做到这一点。
我们有一个 jsf 应用程序,带有一个正常的登录站点。现在我们必须将此应用程序与另一个应用程序集成,我的问题是在两个应用程序之间传递参数。假设客户端在一个应用程序中有一个 ID,我必须从第二个应用程序加载登录页面,我认为从第一个应用程序通知第二个应用程序有关客户端的最简单方法是使用参数加载登录页面,即第一个应用程序的客户端 ID。
另一种方式,我的第二个应用程序必须独立运行,所以我需要两个登录页面,一个没有参数,一个有参数。这种方式甚至是可能的,或者有另一种方法可以做到这一点。
您不能在两个不同的应用程序之间共享会话。您将参数从第一个应用程序传递到第二个应用程序的策略对我来说似乎是正确的。
如果您想共享登录名,那么另一种方法可能是在第一个应用程序的加密 cookie 中添加登录详细信息,当您重定向到另一个应用程序时,第二个应用程序可以根据加密的 cookie 验证登录。
两个应用程序都应该在同一个域中运行以接受 cookie(例如 .xyz.com)
这就是大多数 SSO(单点登录)应用程序通过使用 LTPA 令牌作为 cookie 来共享会话的方式。
第二个应用程序可以有具有两种不同形式的单个登录页面。
您可以从第一个应用程序传递一些 ID 作为会话属性的一部分,并在第二个应用程序的登录页面中获取该会话属性。在这里,您可以检查您是否获得了会话属性(是否为空),并根据需要呈现相关表单。相反,如果直接点击第二个应用程序的登录页面,则该会话属性将不存在,您可以根据需要呈现其他表单。