@Override protected Request createUnsignedRequest() { // 2LO means oauth_token must be empty string return new com.atlassian.oauth.Request(toOAuthMethodType(methodType), URI.create(url), toOAuthParameters("")); } }
private Request asOAuthRequest(final HttpServletRequest request) { Iterable<Parameter> parameters = filter(transform(Arrays.asList(request.getParameterValues("p")), new Function<String, Parameter>() { public Parameter apply(String parameterNumber) { if (isBlank(request.getParameter("p" + parameterNumber))) { return null; } return new Parameter(request.getParameter("p" + parameterNumber), request.getParameter("v" + parameterNumber)); } }), notNull()); if (!isBlank(request.getParameter("timestamp"))) { parameters = concat(parameters, ImmutableList.of(new Parameter("oauth_timestamp", request.getParameter("timestamp")))); } if (!isBlank(request.getParameter("nonce"))) { parameters = concat(parameters, ImmutableList.of(new Parameter("oauth_nonce", request.getParameter("nonce")))); } return new Request(HttpMethod.valueOf(request.getParameter("method")), URI.create(request.getParameter("uri")), parameters); }
/** * Converts the {@code OAuthMessage} to an {@code Request}. * * @param message {@code OAuthMessage} to be converted to an {@code Request} * @return {@code Request} converted from {@code OAuthMessage} */ public static Request fromOAuthMessage(OAuthMessage message) { checkNotNull(message, "message"); try { return new Request( HttpMethod.valueOf(message.method.toUpperCase()), URI.create(message.URL), fromOAuthParameters(message.getParameters()) ); } catch (IOException e) { throw new RuntimeException("Failed to convert from OAuthMessage", e); } }
@Override protected Request createUnsignedRequest() { // a 3LO request needs a valid OAuth token. return new com.atlassian.oauth.Request(toOAuthMethodType(methodType), URI.create(url), toOAuthParameters(consumerToken.getToken())); }
private Request sign(Request request, OAuthAccessor accessor) { try { final URI requestUri = request.getUri(); Preconditions.checkArgument(requestUri.normalize().getPath().equals(requestUri.getPath()), "Refusing to sign non-normalized URL: " + requestUri); OAuthMessage oauthMessage = accessor.newRequestMessage( request.getMethod().name(), requestUri.toString(), asOAuthParameters(request.getParameters()) ); log.debug("Signed request {}", oauthMessage); return new Request(request.getMethod(), requestUri, fromOAuthParameters(oauthMessage.getParameters())); } catch (net.oauth.OAuthException e) { throw new OAuthSigningException("Failed to sign the request", e); } catch (IOException e) { // this shouldn't happen as the message is not being read from any IO streams, but the OAuth library throws // these around like they're candy, but far less sweet and tasty. throw new RuntimeException(e); } catch (URISyntaxException e) { // this shouldn't happen unless the caller somehow passed us an invalid URI object throw new RuntimeException(e); } }
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 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; }