3

我正在尝试使用OAuthRestTemplatespring-security-oauth 调用使用 Oauth 1a 的 api。

我看到大多数示例设置了使用者密钥和秘密,然后让库获取访问令牌。我有令牌和令牌机密(不会过期),我想在 OAuthRestTemplate 上设置它们并进行调用,而无需通过身份验证流程。

那可能吗?如果是这样,如何?

4

2 回答 2

2

AFAIK 这是不可能的(它在 OAuth2 方面,但 OAuth1 从未得到如此多的爱)。捐款被欣然接受。

于 2014-06-18T09:15:02.683 回答
2

这是可能的,虽然有点老套。下面的示例代码:

    // Assume you have a preconfigured RestTemplate
    OAuthRestTemplate template = new OAuthRestTemplate(resource);

    OAuthConsumerToken accessToken = new OAuthConsumerToken();
    accessToken.setAccessToken(true);
    accessToken.setResourceId(template.getResource().getId());
    accessToken.setValue(ACCESS_TOKEN);

    OAuthSecurityContextImpl securityContext = new OAuthSecurityContextImpl();
    securityContext.setAccessTokens(new HashMap<>());
    securityContext.getAccessTokens().put(accessToken.getResourceId(), accessToken);

    OAuthSecurityContextHolder.setContext(securityContext);

理想情况下,您应该检查是否存在现有的安全上下文,如果不存在,则将令牌添加到映射中。

于 2015-09-23T07:10:13.080 回答