Spring Security Oauth2 - 向 AccessTokenRequest 添加凭据

Posted

技术标签:

【中文标题】Spring Security Oauth2 - 向 AccessTokenRequest 添加凭据【英文标题】:Spring Security Oauth2 - Adding credentials to the AccessTokenRequest 【发布时间】:2015-06-21 08:35:46 【问题描述】:

将this reference 发送到 Spring OAuth2 客户端文档:

还有以下部分:

如果您非常需要密码授权才能从 Java 客户端工作,请使用相同的机制来配置您的 OAuth2RestTemplate 并将凭据添加到 AccessTokenRequest(它是一个 Map 并且是短暂的)而不是 ResourceOwnerPasswordResourceDetails(在所有人之间共享)访问令牌)。

如何将凭据添加到 AccessTokenRequest?或者更一般地说,我怎样才能为请求的特定用户获取对 AccessTokenRequest 或 OAuth2ClientContext 的引用。

我需要这个的原因是为了避免 UserRedirectRequiredException 和重定向到授权 URL 的要求,因为我正在访问的 Rest API 没有登录页面,而只是一个 restful 登录 api。

假设 OAuth2ClientContextFilter 应该存储当前请求和上下文,但我看不出如何。

【问题讨论】:

好的,会话属性scopedTarget.oauth2ClientContext保存了客户端上下文 【参考方案1】:

访问AccessTokenRequest

@Autowired
OAuth2RestTemplate restTemplate;

public void doSomething() 
  AccessTokenRequest request = 
    restTemplate.getOAuth2ClientContext().getAccessTokenRequest();
  ...

【讨论】:

以上是关于Spring Security Oauth2 - 向 AccessTokenRequest 添加凭据的主要内容,如果未能解决你的问题,请参考以下文章

Spring-Security OAuth2 设置 - 无法找到 oauth2 命名空间处理程序

Spring Security OAuth2 v5:NoSuchBeanDefinitionException:'org.springframework.security.oauth2.jwt.Jwt

针对授权标头的Spring Security OAuth2 CORS问题

OAuth2.0学习(4-1)Spring Security OAuth2.0 - 代码分析

Spring Security---Oauth2详解

如何使用spring-security,oauth2调整实体的正确登录?