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

Unified Diff: net/test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticator.java

Issue 1128043007: Support Kerberos on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix a nit I had missed. Created 5 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: net/test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticator.java
diff --git a/net/test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticator.java b/net/test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticator.java
new file mode 100644
index 0000000000000000000000000000000000000000..773b3c12b138fffd5f65c636e6b4eb416918ff00
--- /dev/null
+++ b/net/test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticator.java
@@ -0,0 +1,127 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.net.test;
+
+import android.accounts.AbstractAccountAuthenticator;
+
+import android.accounts.Account;
+import android.accounts.AccountAuthenticatorResponse;
+import android.accounts.AccountManager;
+import android.accounts.AuthenticatorException;
+import android.accounts.NetworkErrorException;
+import android.accounts.OperationCanceledException;
+import android.content.Context;
+import android.os.Bundle;
+
+import org.chromium.base.Log;
+
+import java.io.IOException;
+
+/**
+ * Dummy Android authenticator, to test SPNEGO/Keberos support on Android. This is
+ * deliberately minimal, and is not intended as an example of how to write a
+ * real SPNEGO Authenticator.
+ */
+public class DummySpnegoAuthenticator extends AbstractAccountAuthenticator {
+ private static final String SPNEGO_FEATURE = "SPNEGO";
+
+ private static int sAccountNumber = 0;
+
+ private static final String TAG = "cr.net.test";
+ /**
+ * @param context
+ */
+ public DummySpnegoAuthenticator(final Context context) {
+ super(context);
+ Log.i(TAG, "Constructor");
Bernhard Bauer 2015/06/10 17:11:03 Remove these logging statements?
aberent 2015/06/15 15:52:20 Done.
+ final Thread thread = new Thread() {
+ @Override
+ public void run() {
+ AccountManager am = AccountManager.get(context);
+ String features[] = {"SPNEGO"};
+ try {
+ Bundle accountBundle =
+ am.addAccount("org.chromium.test.DummySpnegoAuthenticator", "SPNEGO",
+ features, null, null, null, null).getResult();
+ String accountName = accountBundle.getString(AccountManager.KEY_ACCOUNT_NAME);
+ Log.i(TAG, "Account name = " + accountName);
+ } catch (OperationCanceledException | AuthenticatorException | IOException e) {
+ // TODO(aberent): Auto-generated catch block
Bernhard Bauer 2015/06/10 17:11:03 :)
aberent 2015/06/15 15:52:20 Done.
+ e.printStackTrace();
+ }
+ }
+ };
+ thread.start();
+ }
+
+ @Override
+ public Bundle addAccount(AccountAuthenticatorResponse arg0, String accountType, String arg2,
+ String[] arg3, Bundle arg4) throws NetworkErrorException {
+ Log.i(TAG, "addAccount");
+ Bundle result = new Bundle();
+ result.putString(AccountManager.KEY_ACCOUNT_NAME, "SPNEGO Account" + sAccountNumber);
+ result.putString(AccountManager.KEY_ACCOUNT_TYPE, accountType);
+ sAccountNumber++;
+ return result;
+ }
+
+ @Override
+ public Bundle confirmCredentials(AccountAuthenticatorResponse arg0, Account arg1, Bundle arg2)
+ throws NetworkErrorException {
+ Log.i(TAG, "confirmCredentials");
+ Bundle result = new Bundle();
+ result.putBoolean(AccountManager.KEY_BOOLEAN_RESULT, true);
+ return result;
+ }
+
+ @Override
+ public Bundle editProperties(AccountAuthenticatorResponse arg0, String arg1) {
+ Log.i(TAG, "editProperties");
+ return new Bundle();
+ }
+
+ @Override
+ public Bundle getAuthToken(AccountAuthenticatorResponse arg0, Account account, String arg2,
+ Bundle arg3) throws NetworkErrorException {
+ Log.i(TAG, "getAuthToken, Account name = " + account.name);
+ // TODO(aberent): This will need modification as the tests are created.
+ Bundle result = new Bundle();
+ result.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);
+ result.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);
+ result.putString(AccountManager.KEY_AUTHTOKEN, "DummyToken");
+ return result;
+ }
+
+ @Override
+ public String getAuthTokenLabel(String arg0) {
+ Log.i(TAG, "getAuthTokenLabel");
+ return "Spnego " + arg0;
+ }
+
+ @Override
+ public Bundle hasFeatures(AccountAuthenticatorResponse arg0, Account arg1, String[] features)
+ throws NetworkErrorException {
+ Log.i(TAG, "hasFeatures");
+ Bundle result = new Bundle();
+ for (String feature : features) {
+ if (!feature.equals(SPNEGO_FEATURE)) {
+ result.putBoolean(AccountManager.KEY_BOOLEAN_RESULT, false);
+ return result;
+ }
+ }
+ result.putBoolean(AccountManager.KEY_BOOLEAN_RESULT, true);
+ return result;
+ }
+
+ @Override
+ public Bundle updateCredentials(AccountAuthenticatorResponse arg0, Account arg1, String arg2,
+ Bundle arg3) throws NetworkErrorException {
+ Log.i(TAG, "updateCredentials");
+ Bundle result = new Bundle();
+ result.putInt(AccountManager.KEY_ERROR_CODE, AccountManager.ERROR_CODE_BAD_REQUEST);
+ result.putString(AccountManager.KEY_ERROR_MESSAGE, "Can't add new SPNEGO accounts");
+ return result;
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698