使用Spring引导的资源所有者密码凭据
我有一个与Spring引导服务器通信的传统桌面应用程序(最新版本使用Spring引导的资源所有者密码凭据,spring,spring-boot,spring-security,oauth-2.0,spring-security-oauth2,Spring,Spring Boot,Spring Security,Oauth 2.0,Spring Security Oauth2,我有一个与Spring引导服务器通信的传统桌面应用程序(最新版本2.2.2.RELEASE)。我使用OAuth2进行身份验证(由spring-boot-starter-OAuth2-client提供)。我希望避免更改客户端,因为它是一个遗留应用程序。它能够收集凭据并通过HTTP基本身份验证启动会话,然后在以下请求中保留会话的cookie 考虑到这种情况,我认为最好的选择是使用OAuth2资源所有者密码凭证授权。这样,我们就可以通过OAuth2令牌交换收集的凭据。我们有两个选择: 选项1: 修改客
2.2.2.RELEASE
)。我使用OAuth2进行身份验证(由spring-boot-starter-OAuth2-client
提供)。我希望避免更改客户端,因为它是一个遗留应用程序。它能够收集凭据并通过HTTP基本身份验证启动会话,然后在以下请求中保留会话的cookie
考虑到这种情况,我认为最好的选择是使用OAuth2资源所有者密码凭证授权。这样,我们就可以通过OAuth2令牌交换收集的凭据。我们有两个选择:
选项1:
修改客户端应用程序以通过授权标头使用访问令牌。这将需要对授权提供程序进行初始调用,以通过令牌交换收集的凭据
选项2:
继续使用Spring会话,并将有关OAuth客户机的信息存储在服务器中
我发现这个项目几乎做到了这一点:。它有一个客户机(messaging client password
),定义为授权授予类型:password
,它将在Spring Boot中激活OAuth2资源所有者密码凭据授予
它创建一个OAuth2客户机并将其信息存储在会话中,然后Spring可以在进一步的请求中使用该客户机。这个项目的问题是,它似乎只在OAuth客户端用于发出HTTP请求(例如,调用另一个服务的端点)而不向控制器提供身份验证时才起作用。您可以在此处找到有关此的更多信息:
- Github相关问题: