我正在尝试使用spring-security-oauth中的OAuthRestTemplate
来调用使用Oauth 1a的api。
我看到大多数示例都设置了使用者密钥和密钥,然后让库获取访问令牌。 我有令牌和令牌密码(它没有过期),我想在OAuthRestTemplate上设置它们并进行调用,而无需通过身份验证流程。
这可能吗?如果是这样,怎么样?
答案 0 :(得分:1)
AFAIK是不可能的(它在OAuth2方面,但OAuth1从来没有得到那么多的爱)。捐款感激不尽。
答案 1 :(得分:0)
这是可能的,虽然有点hacky。示例代码如下:
// 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);
理想情况下,您应该检查现有的安全上下文是否存在,并将该令牌添加到地图中(如果它尚未存在)。