Rest 从JSF应用程序中分离一个模块

Rest 从JSF应用程序中分离一个模块,rest,jsf,jakarta-ee,architecture,microservices,Rest,Jsf,Jakarta Ee,Architecture,Microservices,我们有大型JSF单片应用程序。我们希望更改此应用程序的体系结构。目前,我的目标是更改应用程序中的一个模块。我需要将逻辑从一个模块移动到另一个应用程序,该应用程序将在另一个技术堆栈上实现,它将是rest服务,前端将有一些js框架 应用程序应该以同样的方式工作。我们应该像以前一样拥有指向该页面的链接,但是该页面应该由另一个服务提供。这两个应用程序之间应该有相同的会话。用户应该能够抛出页面,而无需额外的身份验证步骤 我们还计划移动其他模块,不仅仅是这个模块。我需要帮助。你有什么想法应该如何实施?有什么

我们有大型JSF单片应用程序。我们希望更改此应用程序的体系结构。目前,我的目标是更改应用程序中的一个模块。我需要将逻辑从一个模块移动到另一个应用程序,该应用程序将在另一个技术堆栈上实现,它将是rest服务,前端将有一些js框架

应用程序应该以同样的方式工作。我们应该像以前一样拥有指向该页面的链接,但是该页面应该由另一个服务提供。这两个应用程序之间应该有相同的会话。用户应该能够抛出页面,而无需额外的身份验证步骤


我们还计划移动其他模块,不仅仅是这个模块。我需要帮助。你有什么想法应该如何实施?有什么例子吗?

对我来说,实现这一点的理想方法是使用SSO服务,例如,作为您的身份提供者。这涉及到将身份验证逻辑移植到它,并将它与您的monolith分离。但一旦您将其作为IdP使用,您就只能在应用程序和IdP之间共享令牌。Key斗篷有许多适配器,用于Java、Javascript和NodeJs客户端。。等等这有一个巨大的优势,即您可以保持逻辑与整体的解耦,甚至不需要用Java编写新的模块。您甚至可以将它与非您编写的服务进行集成,对它们来说,开放Id Connect或SAML集成就足够了

KC支持SAML和OIDC身份验证协议。随着OIDC成为全新应用程序的发展方向,每个应用程序中的适配器都会检查用户是否拥有有效的web会话。如果没有,它将被重定向到KC登录页面。有效登录的结果是一个代码,您可以使用该代码获取访问令牌从应用程序获取资源的有效令牌。除此之外,适配器将访问令牌绑定到浏览器web会话,该会话也存储在KC中。因此,如果您试图访问另一个网页,适配器将检查您的web会话,该会话被认为是有效的

您也可以使用它从移动设备访问您的应用程序,自己负责移动应用程序中的访问令牌管理/续订

另见:


前端的一些js框架;-…'一些'。。。。WebFragments是一个不错的选择。独立于JSF。。。作品great@Kukeltje,它应该是另一个应用程序。一些js框架-反应或角度。我不确定是否能很好地理解你,我认为将业务层与视图分开是核心,不管“前端”的概念是什么,用不同的话来说:你是指垂直还是水平切割模块?最后听到“得到它”的人欢呼。在最初只读了前几句话后,投票结果上升。