【问题标题】:Spring Boot OAuth 2 Get Logger UsernameSpring Boot OAuth 2 获取记录器用户名
【发布时间】:2017-11-03 09:51:51
【问题描述】:

我不知道如何从 spring boot oauth 2 获取当前登录的用户名。此外,我们有一个身份验证服务器和多个系统,我们想在它们之间建立 sso。此外,我们还需要在每个系统中使用会话。所以问题是我们如何从每个系统中获取当前的用户名和会话。

【问题讨论】:

  • 您可以在控制器方法参数中使用SecurityContextHolder.getContext().getAuthentication()Principal principal
  • 谢谢,我需要检查一下。如何获得会话。我们可以保存用户相关变量的地方(不在数据库中),我们只需要会话;
  • 那么你必须使用Spring Session,它在分布式应用程序中分发会话。通过这个可以获取session。
  • 谢谢,不过我认为 sso 是无状态的。我需要检查一下。那么,请用 sso+session 提供一些代码示例?
  • 这个spring.io/blog/2015/02/03/…可以帮助你。

标签: spring spring-boot oauth-2.0 single-sign-on httpsession


【解决方案1】:

使用 JWT 令牌,您可以在其中放置必要的信息并从令牌中提取信息。

http://www.svlada.com/jwt-token-authentication-with-spring-boot/

会话实际上与 SSO “冲突”,但您可以尝试存储键/值来保留会话信息(例如 Redis https://dzone.com/articles/using-redis-session-storage

【讨论】:

  • 好的,谢谢。但我确实认为在 sso 中是可能的。我们不希望用户在每个系统中再次登录。我们只想让用户登录一次
猜你喜欢
  • 2019-05-14
  • 2021-10-13
  • 1970-01-01
  • 2019-02-18
  • 2015-04-15
  • 2015-01-30
  • 1970-01-01
  • 2018-10-25
  • 2020-01-28
相关资源
最近更新 更多