我目前正在开发 Jhipster 原型(prototype)应用程序。该应用程序是一个简单的网关,具有用于访问数据的微服务。
现在,我想使用公司现有的数据库来验证用户身份,但 Jhispter 似乎不支持多个数据源(而且我不希望我的整个网关切换到另一个数据库)
我的第一个想法是使用微服务来验证用户身份。此微服务将在另一个数据库上运行,但这会产生另一个问题:要从网关调用此服务,我需要 JWT token ...这开始看起来像我需要进行身份验证才能对用户进行身份验证。
如前所述,另一种解决方案是在我的网关上有两个数据源:一个用于用户身份验证(指向现有数据库),另一个用于 Jhipster 相关数据(审核等)
您知道在这种情况下最佳做法是什么吗? 您能为我指明这个选择的正确方向吗?
最佳答案
第一个解决方案:您可以轻松地在微服务的 SecurityConfiguration 中取消对身份验证端点的保护,这样您就不需要 token ,然后您必须在网关上为/api/authenticate 创建 Zuul 路由。
第二个解决方案是一个关于在 Spring Boot 中使用多个数据源的众所周知的问题,它有许多有据可查的答案。
如果您可以将现有的第三方身份服务器(例如 uaa 或 KeyCloak)配置到现有的用户数据库,则可能还有另一种解决方案。
因此,对于原型(prototype),我会选择第二种解决方案。
关于authentication - 吉普斯特 : Proper architecture to authenticate using an existing database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39742117/