@Override public void signRequest(String accessToken, OAuthRequest request) { super.signRequest(accessToken, request); final Mac mac; try { mac = Mac.getInstance("HmacSHA256"); final SecretKeySpec secretKey = new SecretKeySpec(getApiSecret().getBytes(), "HmacSHA256"); mac.init(secretKey); final Formatter appsecretProof = new Formatter(); for (byte b : mac.doFinal(accessToken.getBytes())) { appsecretProof.format("%02x", b); } request.addParameter("appsecret_proof", appsecretProof.toString()); } catch (NoSuchAlgorithmException | InvalidKeyException e) { throw new IllegalStateException("There is a problem while generating Facebook appsecret_proof.", e); } } }
@Override public void signRequest(String accessToken, OAuthRequest request) { super.signRequest(accessToken, request); request.addHeader("X-Client-ID", getApiKey()); } }
final OAuth20Service service = util.getService(); final OAuthRequest request = new OAuthRequest(Verb.POST, url, service); request.addHeader("Content-Type", "application/json;charset=UTF-8"); request.addPayload(MAPPER.writeValueAsString(requestModel)); // or this if you have a json string // request.addPayload(json); service.signRequest(new OAuth2AccessToken(accessToken), request); final Response postResponse = request.send();
@Override public void signRequest(String accessToken, OAuthRequest request) { //sig = lower(md5( sorted_request_params_composed_string + md5(access_token + application_secret_key))) try { final String tokenDigest = md5(accessToken + getApiSecret()); final ParameterList queryParams = request.getQueryStringParams(); queryParams.addAll(request.getBodyParams()); final List<Parameter> allParams = queryParams.getParams(); Collections.sort(allParams); final StringBuilder stringParams = new StringBuilder(); for (Parameter param : allParams) { stringParams.append(param.getKey()) .append('=') .append(param.getValue()); } final String sigSource = URLDecoder.decode(stringParams.toString(), "UTF-8") + tokenDigest; request.addQuerystringParameter("sig", md5(sigSource).toLowerCase()); super.signRequest(accessToken, request); } catch (UnsupportedEncodingException unex) { throw new IllegalStateException(unex); } }
private SocialUser getAccount(OAuth20Service service, OAuth2AccessToken accessToken) { try { OAuthRequest request = new OAuthRequest(Verb.GET, getAccountUrl, service); service.signRequest(accessToken, request); Response response = request.send(); return toAccount(response.getBody()); } catch (Exception e) { return null; } }
private void signRequest(OAuthRequest request, OAuth20Service service, boolean redirected) throws ConnectionException { if (!getCredentialsPresent()) { return; } try { if (data.originUrl.getHost().contentEquals(data.urlForUserToken.getHost())) { OAuth2AccessToken token = new OAuth2AccessToken(getUserToken(), getUserSecret()); service.signRequest(token, request); } else { // See http://tools.ietf.org/html/draft-prodromou-dialback-00 if (redirected) { OAuth2AccessToken token = new OAuth2AccessToken("", null); service.signRequest(token, request); } else { request.addParameter("Authorization", "Dialback"); request.addParameter("host", data.urlForUserToken.getHost()); request.addParameter("token", getUserToken()); MyLog.v(this, () -> "Dialback authorization at " + data.originUrl + "; urlForUserToken=" + data.urlForUserToken + "; token=" + getUserToken()); OAuth2AccessToken token = new OAuth2AccessToken(getUserToken(), null); service.signRequest(token, request); } } } catch (Exception e) { throw new ConnectionException(e); } }
OAuth2AccessToken token = _credentialsStore.get(providerName, OAuth2AccessToken.class); service.signRequest(token, request); } else {
@Override protected void signRequest(final OAuth20Service service, final OAuth2AccessToken accessToken, final OAuthRequest request) { service.signRequest(accessToken, request); if (this.configuration.isTokenAsHeader()) { request.addHeader(HttpConstants.AUTHORIZATION_HEADER, HttpConstants.BEARER_HEADER_PREFIX + accessToken.getAccessToken()); } if (Verb.POST.equals(request.getVerb())) { request.addParameter(OAuthConfiguration.OAUTH_TOKEN, accessToken.getAccessToken()); } } }
@Override public void onAuthCodeReceived(String authCode) { authCallbackHandler.setListener(null); try { String contentJson = json.toJson(new CreateIssueBody(title, body)); OAuth2AccessToken accessToken = apiService.getAccessToken(authCode); OAuthRequest request = new OAuthRequest(Verb.POST, "https://api.github.com/repos/"+GITHUB_OWNER+"/"+GITHUB_REPO+"/issues"); request.setPayload(contentJson); apiService.signRequest(accessToken, request); Response response = apiService.execute(request); if (response.getCode() != 201) { resultHandler.onError(new IllegalStateException("GitHub returned bad code: " + response.getCode() + "\n" + response.getMessage() + "\n" + response.getBody())); } else { JsonValue jsonRoot = new JsonReader().parse(response.getBody()); String issueUrl = jsonRoot.getString("html_url"); resultHandler.onSuccess(issueUrl); } } catch (IOException | InterruptedException | ExecutionException | OAuthException e) { e.printStackTrace(); resultHandler.onError(e); } } });