From cc5a7b6c1c4abc1038f6c60fef96d4114411e7cc Mon Sep 17 00:00:00 2001 From: madurangasiriwardena Date: Mon, 20 May 2019 16:13:22 +0530 Subject: [PATCH] Use ConnectionBuilder to call userinfo endpoint Resolves https://github.com/openid/AppAuth-Android/issues/467 --- .../net/openid/appauthdemo/TokenActivity.java | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/app/java/net/openid/appauthdemo/TokenActivity.java b/app/java/net/openid/appauthdemo/TokenActivity.java index 74f27b79..ae446561 100644 --- a/app/java/net/openid/appauthdemo/TokenActivity.java +++ b/app/java/net/openid/appauthdemo/TokenActivity.java @@ -47,8 +47,6 @@ import java.io.IOException; import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; import java.nio.charset.Charset; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -347,23 +345,15 @@ private void fetchUserInfo(String accessToken, String idToken, AuthorizationExce .getAuthorizationServiceConfiguration() .discoveryDoc; - URL userInfoEndpoint; - try { - userInfoEndpoint = + Uri userInfoEndpoint = mConfiguration.getUserInfoEndpointUri() != null - ? new URL(mConfiguration.getUserInfoEndpointUri().toString()) - : new URL(discovery.getUserinfoEndpoint().toString()); - } catch (MalformedURLException urlEx) { - Log.e(TAG, "Failed to construct user info endpoint URL", urlEx); - mUserInfoJson.set(null); - runOnUiThread(this::displayAuthorized); - return; - } + ? Uri.parse(mConfiguration.getUserInfoEndpointUri().toString()) + : Uri.parse(discovery.getUserinfoEndpoint().toString()); mExecutor.submit(() -> { try { - HttpURLConnection conn = - (HttpURLConnection) userInfoEndpoint.openConnection(); + HttpURLConnection conn = mConfiguration.getConnectionBuilder().openConnection( + userInfoEndpoint); conn.setRequestProperty("Authorization", "Bearer " + accessToken); conn.setInstanceFollowRedirects(false); String response = Okio.buffer(Okio.source(conn.getInputStream()))