gpt4 book ai didi

java - 如何在不同服务器上时对 Spring UsernamePasswordAuthenticationFilter 进行负载平衡

转载 作者:行者123 更新时间:2023-12-02 03:06:24 25 4
gpt4 key购买 nike

我目前正在开发一个需要高度可扩展的 REST 应用程序。根据我对负载平衡的了解,应该将实际应用程序分成独立的部分。到目前为止,我已将创建帐户和登录与实际应用程序分开。我关注了this实现 JWT 的教程。这是最佳实践还是可以改进此解决方案?

但是,我将实际的 REST 应用程序作为一个单独的项目。显然,这两个应用程序需要协同工作。我怎样才能做到这一点?有没有办法存储 token 并在第二个应用程序中访问它?

有人告诉我要遵循微服务架构 according to this tutorial .

非常感谢您的帮助!

最佳答案

使用 auth0 博客中描述的 JWT 模式,服务被设计为无状态。事实上,示例代码显式禁用了 Spring session 。授权所需的所有信息都完全包含在 JWT token 本身中并受到加密保护。

因此,无需在多个服务/应用程序之间存储或共享 token ,只要它们都配置有相同的SECRET即可。每个负载平衡服务只需要使用 JWTAuthorizationFilter 类来验证客户端收到的 token 。

从最佳实践的角度来看,不要从每个服务“手动”颁发 JWT token ,而是考虑使用 oauth2 或 OpenID Connect 服务。这可以是您自己的服务,也可以使用第三方服务,例如 auth0 或 okta。 (OpenID Connect 是 oauth2 的扩展)。

您可以从 https://auth0.com/blog/securing-spring-boot-apis-and-spas-with-oauth2/ 阅读有关 oauth2 的更多信息

关于java - 如何在不同服务器上时对 Spring UsernamePasswordAuthenticationFilter 进行负载平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57020763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com