private ConsumerToken asToken(HttpServletRequest request) { return ConsumerToken.newAccessToken(request.getParameter("token")) .tokenSecret(request.getParameter("token-secret")) .consumer(consumer.getConsumer()) .build(); }
@PUT @Path("consumer/{applinkId}/{username}") public Response createConsumerAccessToken(@PathParam("applinkId") String applinkId, @PathParam("username") String username, RestAccessToken restToken) throws TypeNotInstalledException { ApplicationId applicationId = new ApplicationId(applinkId); ApplicationLink link = getApplicationLink(applicationId); ConsumerToken token = ConsumerToken.newAccessToken(restToken.getToken()) .tokenSecret(restToken.getTokenSecret()) .consumer(consumerService.getConsumer()) // this app's consumer .build(); consumerTokenStoreService.removeConsumerToken(applicationId, username); consumerTokenStoreService.addConsumerToken(link, username, token); return Response.created(URI.create("")) .entity(new RestAccessToken(token)) .build(); }
public ConsumerToken getAccessToken(ServiceProvider serviceProvider, ConsumerToken requestTokenPair, String requestVerifier, final String consumerKey) throws ResponseException { final List<Request.Parameter> parameters = new ArrayList<Request.Parameter>(); parameters.add(new Request.Parameter(OAuth.OAUTH_TOKEN, requestTokenPair.getToken())); if (StringUtils.isNotBlank(requestVerifier)) // Added in OAuth 1.0a { parameters.add(new Request.Parameter(OAuth.OAUTH_VERIFIER, requestVerifier)); } final Request oAuthRequest = new Request(Request.HttpMethod.POST, serviceProvider.getAccessTokenUri(), parameters); final Request signedRequest = consumerService.sign(oAuthRequest, serviceProvider, requestTokenPair); final TokenAndSecret tokenAndSecret = requestToken(serviceProvider.getAccessTokenUri().toString(), signedRequest); ConsumerToken accessToken = ConsumerToken.newAccessToken(tokenAndSecret.token).tokenSecret(tokenAndSecret.secret).consumer(getConsumer(consumerKey)).build(); assert (accessToken.isAccessToken()); return accessToken; }
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(); } } }