【问题标题】:Spring Security - UserDetailsService for oAuth2 implementation?Spring Security - oAuth2实现的UserDetailsS​​ervice?
【发布时间】:2017-10-27 15:12:09
【问题描述】:

因此,使用基本身份验证,我可以看到仅使用 UserDetailsS​​ervice 实现的价值,该实现基本上只是加载用户并确认他们已通过身份验证。

但是,我现在想使用 oAuth2,但不确定我在这个问题上的想法是否完全错误。使用 oAuth2 不会消除对 UserDetailsS​​ervice 实现的需要吗?因为本质上授权服务器是检查以确保用户存在(使用资源所有者密码流)然后向用户发送 JWT。

一旦用户拥有此访问令牌并且可以随每个请求发送它,就必须有另一种方法让用户在 AuthenticationManager 中进行身份验证,而不是重复工作并检查以确保凭据在UserDetailsS​​ervice(来自 oAuth2 的授权服务器应该已经有一个)。

这是什么其他方式?什么是一个可靠的实现?

谢谢。

【问题讨论】:

    标签: java spring-mvc spring-security oauth-2.0 jwt


    【解决方案1】:

    实际上是UserDetailsService 需要他的权限来获取用户信息。这是正常行为。如果用户通过了授权,他将收到访问令牌,Spring 将他的身份验证数据存储到SecurityContext。当用户使用令牌向受保护资源发送请求时 - Spring 验证令牌并将来自 DB 或内存的身份验证数据放入 SecurityContext 中。它取决于TokenStore 的类型(jdbc、内存等)。 Spring 安全性使用 UserDetailsService 一次进行用户授权。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-25
      • 2013-05-12
      • 2018-02-13
      • 2012-12-25
      • 2012-06-11
      • 2015-08-07
      • 2020-01-03
      • 1970-01-01
      相关资源
      最近更新 更多