我们有使用Spring Boot + Spring Security设计的 Multi-Tenancy WebApp。此应用程序用于管理Azure中的某些资源。用户使用OAuth2.0登录到我们的WebApp,并可以通过我们的应用程序访问Azure资源。
现在,我们需要允许多个用户在单个浏览器 session 中登录到我们的应用程序。因此,基本上,用户(用户1)将使用凭据1登录以访问这些凭据所允许的资源。然后,用户将使用凭据2(基本上另一个用户凭据将其称为user2)登录到同一浏览器页面。同一 session 中将有两个事件用户。用户应该能够在这些帐户之间切换。
用户登录到我们的应用程序后,我们将实例化RestTemplate(使用输入的凭据)以访问Azure资源。
我们可以将单个JSession ID映射到多个RestTemplate,或者可以将多个JSession ID(在单个JSession cookie中)映射到单个RestTemplate。我们可以使用请求参数来指示要使用哪个RestTemplate。
我们已经使用SpringSecurity来获取访问 token 。然后,此访问 token 在RestTemplate中使用,并用于访问Azure资源。
最佳答案
这种方法完全安全吗?我的意思是,不建议让两个用户使用相同的浏览器并共享信息。
我从未见过这种方法。以Google为例-您可以切换个人资料,但需要登录。
如果您确实需要这样做,那么可以使用适用于Chrome,Firefox和Opera的即用型解决方案SessionBox,它可以在同一浏览器中进行 session 切换。否则,两个常见的解决方案是:
关于spring - 使用Spring Boot在单个浏览器 session 中使用多个OAuth2客户端,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52097242/