Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(312)

Unified Diff: remoting/android/java/src/org/chromium/chromoting/Chromoting.java

Issue 337013002: Third Party Authentication for Android Part III - Android OAuth2 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/android/java/src/org/chromium/chromoting/Chromoting.java
diff --git a/remoting/android/java/src/org/chromium/chromoting/Chromoting.java b/remoting/android/java/src/org/chromium/chromoting/Chromoting.java
index 29aec73ad2138033e74434c650e7ad4d44400a1f..156e908033971d37048e489dec13a1c4c5e1d213 100644
--- a/remoting/android/java/src/org/chromium/chromoting/Chromoting.java
+++ b/remoting/android/java/src/org/chromium/chromoting/Chromoting.java
@@ -86,6 +86,9 @@ public class Chromoting extends Activity implements JniInterface.ConnectionListe
/** Dialog for reporting connection progress. */
private ProgressDialog mProgressIndicator;
+ /** Object for fetching OAuth2 access tokens from third party authorization servers. */
+ private ThirdPartyTokenFetcher mTokenFetcher;
+
/**
* This is set when receiving an authentication error from the HostListLoader. If that occurs,
* this flag is set and a fresh authentication token is fetched from the AccountsService, and
@@ -162,6 +165,15 @@ public class Chromoting extends Activity implements JniInterface.ConnectionListe
JniInterface.loadLibrary(this);
}
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ if (mTokenFetcher != null) {
+ if (mTokenFetcher.handleTokenFetched(intent)) {
+ mTokenFetcher = null;
+ }
+ }
+ }
/**
* Called when the activity becomes visible. This happens on initial launch and whenever the
* user switches to the activity, for example, by using the window-switcher or when coming from
@@ -446,4 +458,27 @@ public class Chromoting extends Activity implements JniInterface.ConnectionListe
mProgressIndicator = null;
}
}
+
+ public void fetchThirdPartyToken(String tokenUrl, String clientId, String scope) {
+ assert mTokenFetcher == null;
+
+ ThirdPartyTokenFetcher.Callback callback = new ThirdPartyTokenFetcher.Callback() {
+ public void onTokenFetched(String code, String accessToken) {
+ // The native client sends the OAuth authorization code to the host as the token so
+ // that the host can obtains the shared secret from the third party authorization
+ // server.
+ String token = code;
+ // The native client uses the OAuth access token as the shared secret to
+ // authenticate itself with the host using spake.
+ String sharedSecret = accessToken;
+
+ JniInterface.nativeOnThirdPartyTokenFetched(token, sharedSecret);
+ }
+ };
+
+ mTokenFetcher = new ThirdPartyTokenFetcher(this, tokenUrl, clientId, scope, callback);
+ mTokenFetcher.fetchToken();
+ }
+
+
}

Powered by Google App Engine
This is Rietveld 408576698