gpt4 book ai didi

angularjs - Spring 微服务、无状态 session 、 Angular 和静态文件服务

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

我正在设计分为微服务的大型应用程序的后端。我正在使用 Spring Cloud 及其工具: Eureka , 祖尔 等等。我已经实现了 OAuth2 支持四种授权类型的授权服务器。它可以正常工作。

然后我被要求服务 html 文件 以这种方式,如果未经授权,后端必须重定向到登录页面,并强烈建议我不要使用 session .我以为没有 session spring 真的不知道怎么回事,最后 它必须有 token 来决定构建安全上下文 .

我开始研究这个问题。我发现来自 Spring Security and Angular JS tutorial 的例子表明路由和重定向是在 内部完成的 Angular 的帮助下ui-route .我浏览了 github 中的几个项目,他们也使用 angular 进行重定向。

是否可以在完全无状态的 session 中使用后端进行重定向?(这听起来很愚蠢,但不能以其他方式表达。我想把这个答案给我的同事,他们说这是可能的)。如果可能的话,有什么例子吗?

最佳答案

如果您将 OAuth2 用于内部安全,我建议使用 oauth 来访问控制您的所有服务,将 token 的存在视为 session 之类的东西。

考虑您在 4 种授权类型之一中生成了一些访问 token 。您现在可以访问任何 ResourceServerConfigurerAdapter通过在 Authorization: Bearer <token> 中传递该 token 来保护 spring 云资源HTTP header ,或作为获取参数,如 /service/endpoint?access_token=<token> .

如果您的 token 与用户相关(您可以在没有用户的情况下授权客户端!),您可以通过获取 OAuth2Authentication 来访问其详细信息。从安全上下文。

此外,如果您的访问 token 是 JWT,Spring Cloud 安全默认支持,您既不必在授权服务器上提供真正的 token 存储,也不必从资源服务器请求身份验证服务器上的用户端点以获取用户信息,因为它是在 JWT 内部运送的。

有了这个,关于你的“ session ”(及其状态)的所有内容都存储在访问 token 中,你可以轻松地传递它,并且在没有复制困惑的情况下进行扩展。

我不认为你的安全比这更无国籍;)

关于angularjs - Spring 微服务、无状态 session 、 Angular 和静态文件服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39852947/

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