Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Spring引导的资源所有者密码凭据_Spring_Spring Boot_Spring Security_Oauth 2.0_Spring Security Oauth2 - Fatal编程技术网

使用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: 修改客

我有一个与Spring引导服务器通信的传统桌面应用程序(最新版本
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相关问题:
克服这一问题的自然想法是实现代理并在请求中使用OAuth2客户机。Spring已经提供了一个代理解决方案,Spring云网关。但我不知道用这种设置来实现这一点

有什么见解吗?我的想法是正确的还是应该采用不同的方法