我的项目分为微服务。我的前端项目是Spring Boot上的AngularJS。
我的服务完全是宁静的,我想保留它们。
因为我的服务是Restful,所以我在前端使用HTTP Basic安全性作为身份验证过程。
首先,在最终用户通过登录页面后,一切似乎都很好。
但之后,我意识到由于我的Restful风格,我没有维持HTTP状态,这意味着在即将发送的服务器请求中,我将不得不继续向服务器发送HTTP Basic凭据。我无法向用户验证我想要对服务器发出的每个请求。
是否存在此HTTP无状态样式的解决方法并维护服务器的凭据?
保存凭据的最佳位置是什么?
Cookie?但这会将状态带回HTTP请求。
在我的在线搜索中,我遇到了Redis和/或Spring会议,答案是什么?
答案 0 :(得分:4)
Spring Session是Spring产品组合中一个鲜为人知的项目。它可以轻松地使您的应用程序使用外部会话存储(例如Redis)而不是本地化会话(例如Tomcat)。这使您可以利用负载均衡器在多个服务器之间分配流量,而不会丢失应用程序状态(例如登录/注销)。它还允许您重新启动单个服务器,而不会破坏用户会话。
是的,您可以使用修改后的Spring Session配置更适当地将其与Rest端点一起使用。您将使用HttpBasic执行初始身份验证,但您将收到一个授权令牌,您将在后续请求中将其作为Http Header传递,以代替用户名&密码。有关更多详细信息,请参阅文档链接
这是一个复杂得多的设置,但有利于利用外部身份提供商(例如Google,Facebook)。您还可以在多个应用程序中实现SSO。我建议从Spring Session开始,因为它对于初学者来说简单得多。