angularjs – Spring微服务,无状态会话,角度和静态文件服务

我正在设计大型应用程序的后端,它分为微服务.我使用Spring Cloud及其工具:Eureka,Zuul等.我已经实现了OAuth2授权服务器,它支持四种授权类型.它没有问题.

然后我被要求提供html文件,如果没有授权,后端必须重定向到登录页面,强烈建议我不使用会话.我认为没有会话弹簧真的不知道发生了什么,最终它必须有令牌来决定构建安全上下文.

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

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

最佳答案
如果您使用OAuth2进行内部安全,我建议使用oauth来访问控制所有服务,将令牌的存在视为会话.

考虑您在4种授权类型之一中生成了一些访问令牌.您现在可以通过在Authorization:Bearer< token>中传递该令牌来访问任何ResourceServerConfigurerAdapter安全的Spring云资源. HTTP标头,或者像/ service / endpoint这样的get参数?access_token =< token>.

如果您的令牌与用户相关(您可以在没有用户的情况下授权客户端!),则可以通过从securityContext获取OAuth2Authentication来访问其详细信息.

此外,如果您的访问令牌是JWT,默认情况下在Spring云安全性中受支持,您既不必在授权服务器上提供真正的令牌存储,也不必从资源服务器请求auth服务器上的用户端点来获取用户信息,因为它是在JWT内部发货的.

有了这个,关于“会话”(及其状态)的所有内容都存储在访问令牌中,您可以轻松地传递它,并在没有复制混乱的情况下进行缩放.

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

转载注明原文:angularjs – Spring微服务,无状态会话,角度和静态文件服务 - 代码日志