Spring社交自定义OAuth2版本

时间:2014-10-28 16:12:49

标签: spring oauth spring-social

我尝试连接RESTfull Web服务,经过一些研究后,我发现spring-social project提供了一种很好的方法,可以使用不同的安全机制(如开箱即用的OAuth1a / 2)对REST资源进行API绑定。 / p>

我的问题是,在调用安全休息端点时,我尝试连接的Web服务与spring社交中OAuth2的所有方面都不匹配,尤其是每次调用的访问令牌传输。

Spring Social提供4个OAuth2版本规范:

  • BEARER:标题值为“Bearer”
  • BEARER_DRAFT_2:标题值为“Oauth2”
  • DRAFT_10:标题值为“Oauth”
  • DRAFT_8:标题值为“Token token =”“”

和3个令牌策略

  • AUTHORIZATION_HEADER:表示访问令牌应作为OAuth2 Bearer令牌在Authorization标头中携带
  • ACCESS_TOKEN_PARAMETER:表示访问令牌应作为名为“access_token”的查询参数携带
  • OAUTH_TOKEN_PARAMETER:表示访问令牌应作为名为“oauth_token”的查询参数携带。

所以我的问题是Web服务处理访问令牌的方式与此不同:

  • 参数http://base_api_path/?token=<accessToken>

或者

  • 使用自定义标头X-<Vendor>-Token: <token>

那么如何覆盖spring社交默认的Oauth2机制呢?

我希望我的问题足够明确!

1 个答案:

答案 0 :(得分:1)

spring-social-linkedin项目中,他们会执行您想要的操作,您可能需要查看此class

OAuth2TokenParameterRequestInterceptor 方法