我想用Jhipster的微服务开始一个架构,但我有疑问。 我有4件。
必须针对同一数据库(JWT)验证这两个应用程序。 两个应用程序必须共享一个具有后端的microservicio“CUSTOMER”,但前端将分别位于两个应用程序中。
抱歉我的英文。
答案 0 :(得分:6)
通过将JHipster与JHipster UAA结合使用,您的需求非常合适。
你的第一部分是模拟你的有界语境,例如" HR"," SELECTION"或" CUSTOMER"。但作为微服务后端。模型中的每个项目,作为"客户"或客户"地址"或者" HR"实体,被称为资源。这些资源必须在您的服务中划分。
JHipster网关为您做两件事。首先,它需要您的所有微服务并通过单个API网关公开它们。作为辅助功能,它还为您提供了一个用户界面(此处:在bootstrap + Angular中)。 这不会强制您使用此界面。您可以使用" jhipster:client"生成器,为" HR"生成2个客户端。和"选择"仅使用JS + HTML,并使用plaig old nginx为它们提供服务,并参考您的一个JHipster Gateway。
这是UAA选项发挥作用的地方。使用默认的JWT实现将强制您以用户身份登录(存储在网关中),即使您的" CUSTOMER"微服务呼叫" HR"微服务。
UAA提供了使用OAuth2来启用各种安全通信的选项。因此,在这种情况下,您可以使您的" CUSTOMER"服务问" HR"更多特权数据,然后允许用户使用FeignClients或一般"客户端凭证授予"。
如果您的用户是" CUSTOMERS",那么您的JHipster UAA将成为您的客户"微服务。
如果您有时间等待this feature正在合并,实现所有这些将变得像声明类似于jpa存储库的通信接口一样简单,jpa存储库为您处理所有安全保护。
了解您如何设计您的架构。对所有服务使用一个网关(可能没有ui),稍后使用jhipster:client
生成UI并在nginx上提供它们,逻辑的所有其他内容必须在小型微服务中作为REST API实现,并采用看看如何使用UAA。
要了解如何以正确的方式使用UAA,我建议您查看my spring security article和my example application,它已经使用了上面提到的当前未合并的PR。我没有时间为此编写官方文档。我还写了一个general article,如何使用JHipster微服务,你可以在official documentation上添加。
除此之外,您可以自由地向我索取更多信息!
祝你好运