gpt4 book ai didi

Spring Security 和无状态 Restful 服务

转载 作者:IT王子 更新时间:2023-10-29 06:01:13 26 4
gpt4 key购买 nike

我的项目分为微服务。我的前端项目是基于 Spring Boot 的 AngularJS。

我的服务是完全 Restful 的,我想保持这样。

因为我的服务是 Restful,所以我在前端使用 HTTP Basic 安全性作为身份验证过程。

起初,在最终用户通过登录页面后,一切似乎都很好。

但后来,我意识到,由于我的 Restful 风格,我没有维护 HTTP 状态,这意味着在即将到来的对服务器的请求中,我将不得不继续向服务器发送 HTTP Basic 凭据。而且我无法在我想向服务器发出的每个请求中对用户进行身份验证。

这种 HTTP 无状态样式和维护服务器凭据是否有任何解决方法?

在哪里保存凭据被认为是最好的?

cookies ?但这会将状态带回 HTTP 请求。

在我的在线搜索中,我遇到了 Redis 和/或 Spring session ,这就是答案吗?

最佳答案

Spring Session

Spring Session 是 Spring 组合中一个伟大但鲜为人知的项目。它可以轻松地使您的应用程序使用外部 session 存储(例如 Redis)而不是本地化 session (例如 Tomcat)。这允许您利用负载均衡器在多个服务器之间分配流量而不会丢失应用程序状态(例如登录/注销)。它还允许您在不破坏用户 session 的情况下重新启动单个服务器。

Restful?

是的,您可以使用修改后的 Spring Session 配置来更恰本地将其与 Rest 端点一起使用。您将使用 HttpBasic 执行初始身份验证,但您将收到一个授权 token ,您将在后续请求中将其作为 Http header 传递,以代替用户名和密码。有关详细信息,请参阅文档链接

Spring Security OAuth

这是一个复杂得多的设置,但也有一些优势,例如利用外部身份提供商(例如 Google、Facebook)。您还可以促进跨多个应用程序的 SSO。我建议从 Spring Session 开始,因为它对初学者来说简单得多。

关于Spring Security 和无状态 Restful 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40724874/

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