public void addConsumerToken(final ApplicationLink applicationLink, final String username, final ConsumerToken consumerToken) { Preconditions.checkNotNull(applicationLink, "applicationLink"); Preconditions.checkNotNull(username, "username"); Preconditions.checkNotNull(consumerToken, "consumerToken"); verifyOAuthOutgoingEnabled(applicationLink.getId()); final Map<String, String> tokenProperties = new HashMap<String, String>(); tokenProperties.put(APPLINKS_APPLICATION_LINK_ID, applicationLink.getId().get()); final ConsumerTokenStore.Key key = makeOAuthApplinksConsumerKey(username, applicationLink.getId().get()); ConsumerToken.ConsumerTokenBuilder tokenBuilder; if (consumerToken.isAccessToken()) { tokenBuilder = ConsumerToken.newAccessToken(consumerToken.getToken()); } else { tokenBuilder = ConsumerToken.newRequestToken(consumerToken.getToken()); } tokenBuilder.tokenSecret(consumerToken.getTokenSecret()).consumer(consumerToken.getConsumer()).properties(tokenProperties); consumerTokenStore.put(key, tokenBuilder.build()); }
/** * Converts an {@code OAuthAccessor} to a {@code ConsumerToken}. The token will be set to either an access * or request token depending on whether the {@code accessToken} or {@code requestToken} field is set on the * {@code accessor}. * * <p>Warning: It is impossible to get all the properties that have been set on an {@code OAuthAccessor} so we * cannot copy them into the {@code ConsumerToken}. * * @param accessor {@code OAuthAccessor} to convert to a {@code ConsumerToken} * @return {@code ConsumerToken} converted from the {@code OAuthAccessor} */ public static ConsumerToken asConsumerToken(OAuthAccessor accessor) { checkNotNull(accessor, "accessor"); Consumer consumer = Consumers.fromOAuthConsumer(accessor.consumer); if (accessor.accessToken != null) { return ConsumerToken.newAccessToken(accessor.accessToken) .tokenSecret(accessor.tokenSecret) .consumer(consumer) .build(); } else { return ConsumerToken.newRequestToken(accessor.requestToken) .tokenSecret(accessor.tokenSecret) .consumer(consumer) .build(); } } }
public ConsumerToken getRequestToken(ServiceProvider serviceProvider, final String consumerKey, String callback) throws ResponseException { final Request oAuthRequest = new Request(Request.HttpMethod.POST, serviceProvider.getRequestTokenUri(), Collections.singleton(new Request.Parameter(OAuth.OAUTH_CALLBACK, callback))); final Request signedRequest = consumerService.sign(oAuthRequest, consumerKey, serviceProvider); final com.atlassian.sal.api.net.Request tokenRequest = requestFactory.createRequest( com.atlassian.sal.api.net.Request.MethodType.POST, serviceProvider.getRequestTokenUri().toString()); tokenRequest.addRequestParameters(parameterToStringArray(signedRequest.getParameters())); final TokenAndSecret tokenAndSecret = requestToken(serviceProvider.getRequestTokenUri().toString(), signedRequest); final ConsumerToken requestToken = ConsumerToken.newRequestToken(tokenAndSecret.token) .tokenSecret(tokenAndSecret.secret) .consumer(getConsumer(consumerKey)) .build(); assert (requestToken.isRequestToken()); return requestToken; }