Spring security Spring Security OAuth2客户端中的OAuth2AuthorizationCodeGrantFilter与OAuth2LoginAuthenticationFilter

Spring security Spring Security OAuth2客户端中的OAuth2AuthorizationCodeGrantFilter与OAuth2LoginAuthenticationFilter,spring-security,spring-security-oauth2,Spring Security,Spring Security Oauth2,当我试图理解OAuth2客户机时,我不明白为什么我们有两个不同的过滤器 我试图与Github集成。以下是我的观察结果 OAuth2AuthorizationCodeGrantFilter听起来像是一个为访问令牌交换授权代码的过滤器,但当我保持调试点时,它不会这样做 OAuth2LoginAuthenticationFilter听起来有点像是以某种方式登录的,但是这个过滤器交换身份验证代码来访问令牌,而不是上面提到的 我不确定为什么会出现这种情况,因为第一个类名意味着与授权代码有很强的相关性 另外

当我试图理解OAuth2客户机时,我不明白为什么我们有两个不同的过滤器

我试图与Github集成。以下是我的观察结果

OAuth2AuthorizationCodeGrantFilter听起来像是一个为访问令牌交换授权代码的过滤器,但当我保持调试点时,它不会这样做 OAuth2LoginAuthenticationFilter听起来有点像是以某种方式登录的,但是这个过滤器交换身份验证代码来访问令牌,而不是上面提到的 我不确定为什么会出现这种情况,因为第一个类名意味着与授权代码有很强的相关性

另外,OAuth2LoginConfiguer和OAuth2Client配置器之间有什么区别

看起来OAuth2LoginConfiguration配置了OAuth2LoginAuthenticationFilter,而OAuth2Client配置器配置了OAuth2AuthorizationCodeGrantFilter

有人能解释一下它们各自的用途吗?它们适用于哪些场景


谢谢

这在Spring安全参考资料中有很好的记录

同样,在javadoc中:

在高级别:

http.oauth2Login是 http.oauth2Client.authorizationCodeGrant是grant的一个实现
这在Spring安全参考中有很好的记录

同样,在javadoc中:

在高级别:

http.oauth2Login是 http.oauth2Client.authorizationCodeGrant是grant的一个实现

你读过Spring安全参考资料吗?再见,对不起。。还没有。。我只是浏览了一下,看看能不能找到快速的指针。但它并没有讨论OAuth2AuthorizationCodeGrantFilter。如果您知道第一个过滤器的功能,将不胜感激。同时,我会检查一下文件。谢谢你的指点,这不是学习Spring安全性的好方法。从一些类开始是非常复杂的。但是,OAuth2AuthorizationCodeGrantFilter是OAuth2客户端第一个链接的授权码授予类型的实现。我对Spring安全性有着合理的理解&过去使用资源所有者密码授予实现过OAuth2。W.r.t授权代码授权流,OAuth2LoginAuthenticationFilter正在处理身份验证代码->访问来自身份验证服务器的令牌交换。所以,不确定OAuth2AuthorizationCodeGrantFilter在哪里适合您阅读Spring安全参考?再见,对不起。。还没有。。我只是浏览了一下,看看能不能找到快速的指针。但它并没有讨论OAuth2AuthorizationCodeGrantFilter。如果您知道第一个过滤器的功能,将不胜感激。同时,我会检查一下文件。谢谢你的指点,这不是学习Spring安全性的好方法。从一些类开始是非常复杂的。但是,OAuth2AuthorizationCodeGrantFilter是OAuth2客户端第一个链接的授权码授予类型的实现。我对Spring安全性有着合理的理解&过去使用资源所有者密码授予实现过OAuth2。W.r.t授权代码授权流,OAuth2LoginAuthenticationFilter正在处理身份验证代码->访问来自身份验证服务器的令牌交换。因此,不确定OAuth2AuthorizationCodeGrantFilter适合您的响应。简而言之,如果授权服务器是普通的OAuth2服务器,OAuth2AuthorizationCodeGrantFilter将执行授权代码->访问令牌交换。否则,如果授权服务器是OpenId连接服务器,OAuth2LoginAuthenticationFilter将执行授权代码->访问+id令牌交换?我刚刚尝试使用OAuth2客户端使用Github OAuth2服务器和Keyclope OpenId。在这两种情况下,OAuth2LoginAuthenticationFilter实际上都在进行授权令牌->访问令牌交换。如果你能帮我一些基本的理解,我会很感激的。谢谢你的理解非常接近,但遗漏了几点。更好理解的第一步是全面理解OAuth 2.0授权代码授权流和OpenID Connect。唯一的方法是通过我提供的链接阅读规范。理解之后,阅读http.oauth2Login和http.oauth2Client.authorizationCodeGrant参考文档,了解它是如何按照规范实现的。理解这里的主要区别的关键点是http.oauth2Login用于使用OpenID Connect对用户进行身份验证。例如,它将被用作formLogin的替代方案。和http.oauth2Client.authorizationCodeGrant用于OAuth 2.0客户端需要访问令牌才能启动对受保护资源的调用,但需要首先由资源所有者通过授权码授权的情况。感谢您的回复。我将回顾这些来源,并将分享我将来可能遇到的任何问题。到目前为止,随着OAuth2LoginAuthenticationFilter的开发,我的理解仍然混乱
正在为OAuth2服务器和Oidc服务器执行身份验证代码->访问令牌交换。在打扰你之前,我要做些家务。谢谢!!谢谢你的回复。简而言之,如果授权服务器是普通的OAuth2服务器,OAuth2AuthorizationCodeGrantFilter将执行授权代码->访问令牌交换。否则,如果授权服务器是OpenId连接服务器,OAuth2LoginAuthenticationFilter将执行授权代码->访问+id令牌交换?我刚刚尝试使用OAuth2客户端使用Github OAuth2服务器和Keyclope OpenId。在这两种情况下,OAuth2LoginAuthenticationFilter实际上都在进行授权令牌->访问令牌交换。如果你能帮我一些基本的理解,我会很感激的。谢谢你的理解非常接近,但遗漏了几点。更好理解的第一步是全面理解OAuth 2.0授权代码授权流和OpenID Connect。唯一的方法是通过我提供的链接阅读规范。理解之后,阅读http.oauth2Login和http.oauth2Client.authorizationCodeGrant参考文档,了解它是如何按照规范实现的。理解这里的主要区别的关键点是http.oauth2Login用于使用OpenID Connect对用户进行身份验证。例如,它将被用作formLogin的替代方案。和http.oauth2Client.authorizationCodeGrant用于OAuth 2.0客户端需要访问令牌才能启动对受保护资源的调用,但需要首先由资源所有者通过授权码授权的情况。感谢您的回复。我将回顾这些来源,并将分享我将来可能遇到的任何问题。到目前为止,我的理解仍然混乱,因为OAuth2LoginAuthenticationFilter正在为OAuth2服务器和Oidc服务器进行身份验证代码->访问令牌交换。在打扰你之前,我要做些家务。谢谢!!