private OAuthRequest addClientAuthentication(OAuthRequest request) { request.addParameter(WechatApi20.APPID, this.apiKey); request.addParameter(WechatApi20.SECRET, this.apiSecrect); return request; } }
@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); } } }
static public OAuthRequest getRequestForProvider( final String providerName, final Verb httpVerb, final OAuth2AccessToken oa2token, final URL url, final HashMap<String,Object> cfg, @Nullable final ReadableMap params ) { final OAuth20Service service = OAuthManagerProviders.getApiFor20Provider(providerName, cfg, null, null); OAuthConfig config = service.getConfig(); OAuthRequest request = new OAuthRequest(httpVerb, url.toString(), config); String token = oa2token.getAccessToken(); request = OAuthManagerProviders.addParametersToRequest(request, token, params); // Log.d(TAG, "Making request for " + providerName + " to add token " + token); // Need a way to standardize this, but for now if (providerName.equalsIgnoreCase("slack")) { request.addParameter("token", token); } return request; }
static private OAuthRequest addParametersToRequest( OAuthRequest request, final String access_token, @Nullable final ReadableMap params ) { if (params != null && params.hasKey("params")) { ReadableMapKeySetIterator iterator = params.keySetIterator(); while (iterator.hasNextKey()) { String key = iterator.nextKey(); ReadableType readableType = params.getType(key); switch(readableType) { case String: String val = params.getString(key); // String escapedVal = Uri.encode(val); if (val.equals("access_token")) { val = access_token; } request.addParameter(key, val); break; default: throw new IllegalArgumentException("Could not read object with key: " + key); } } } return request; }
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); } }
@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()); } } }