| Index: net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
|
| diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
|
| index 917f174c50e8208af9144518460d0ec5a6015adc..5befc913e4d9de99fe5632927c330b07472e67f5 100644
|
| --- a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
|
| +++ b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
|
| @@ -18,6 +18,7 @@
|
| import org.chromium.base.VisibleForTesting;
|
| import org.chromium.base.annotations.CalledByNative;
|
| import org.chromium.base.annotations.JNINamespace;
|
| +import org.chromium.net.HttpNegotiateConstants.NegotiateStatus;
|
|
|
| import java.io.IOException;
|
|
|
| @@ -85,42 +86,25 @@ public void run(AccountManagerFuture<Bundle> future) {
|
| Bundle result = future.getResult();
|
| mSpnegoContext =
|
| result.getBundle(HttpNegotiateConstants.KEY_SPNEGO_CONTEXT);
|
| +
|
| + @NegotiateStatus
|
| + int authenticatorStatus = translateDeprecatedStatusCode(
|
| + result.getInt(HttpNegotiateConstants.KEY_SPNEGO_RESULT,
|
| + HttpNegotiateConstants.STATUS_CODE_REQUEST_ERROR));
|
| int status;
|
| - switch (result.getInt(HttpNegotiateConstants.KEY_SPNEGO_RESULT,
|
| - HttpNegotiateConstants.ERR_UNEXPECTED)) {
|
| - case HttpNegotiateConstants.OK:
|
| + switch (authenticatorStatus) {
|
| + case HttpNegotiateConstants.STATUS_CODE_OK:
|
| status = 0;
|
| break;
|
| - case HttpNegotiateConstants.ERR_UNEXPECTED:
|
| - status = NetError.ERR_UNEXPECTED;
|
| - break;
|
| - case HttpNegotiateConstants.ERR_ABORTED:
|
| - status = NetError.ERR_ABORTED;
|
| - break;
|
| - case HttpNegotiateConstants.ERR_UNEXPECTED_SECURITY_LIBRARY_STATUS:
|
| - status = NetError.ERR_UNEXPECTED_SECURITY_LIBRARY_STATUS;
|
| + case HttpNegotiateConstants.STATUS_CODE_AUTHENTICATOR_ERROR:
|
| + status = NetError.ERR_MISCONFIGURED_AUTH_ENVIRONMENT;
|
| break;
|
| - case HttpNegotiateConstants.ERR_INVALID_RESPONSE:
|
| + case HttpNegotiateConstants.STATUS_CODE_REQUEST_ERROR:
|
| status = NetError.ERR_INVALID_RESPONSE;
|
| break;
|
| - case HttpNegotiateConstants.ERR_INVALID_AUTH_CREDENTIALS:
|
| - status = NetError.ERR_INVALID_AUTH_CREDENTIALS;
|
| - break;
|
| - case HttpNegotiateConstants.ERR_UNSUPPORTED_AUTH_SCHEME:
|
| - status = NetError.ERR_UNSUPPORTED_AUTH_SCHEME;
|
| - break;
|
| - case HttpNegotiateConstants.ERR_MISSING_AUTH_CREDENTIALS:
|
| - status = NetError.ERR_MISSING_AUTH_CREDENTIALS;
|
| - break;
|
| - case HttpNegotiateConstants
|
| - .ERR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS:
|
| - status = NetError.ERR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS;
|
| - break;
|
| - case HttpNegotiateConstants.ERR_MALFORMED_IDENTITY:
|
| - status = NetError.ERR_MALFORMED_IDENTITY;
|
| - break;
|
| default:
|
| status = NetError.ERR_UNEXPECTED;
|
| + break;
|
| }
|
| nativeSetResult(nativeResultObject, status,
|
| result.getString(AccountManager.KEY_AUTHTOKEN));
|
| @@ -133,6 +117,32 @@ public void run(AccountManagerFuture<Bundle> future) {
|
| }, new Handler(ThreadUtils.getUiThreadLooper()));
|
| }
|
|
|
| + @SuppressWarnings("deprecation")
|
| + @NegotiateStatus
|
| + private int translateDeprecatedStatusCode(int statusCode) {
|
| + switch (statusCode) {
|
| + case HttpNegotiateConstants.OK:
|
| + return HttpNegotiateConstants.STATUS_CODE_OK;
|
| +
|
| + case HttpNegotiateConstants.STATUS_CODE_AUTHENTICATOR_ERROR:
|
| + case HttpNegotiateConstants.ERR_UNEXPECTED_SECURITY_LIBRARY_STATUS:
|
| + case HttpNegotiateConstants.ERR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS:
|
| + case HttpNegotiateConstants.ERR_UNSUPPORTED_AUTH_SCHEME:
|
| + return HttpNegotiateConstants.STATUS_CODE_AUTHENTICATOR_ERROR;
|
| +
|
| + case HttpNegotiateConstants.STATUS_CODE_REQUEST_ERROR:
|
| + case HttpNegotiateConstants.ERR_ABORTED:
|
| + case HttpNegotiateConstants.ERR_UNEXPECTED:
|
| + case HttpNegotiateConstants.ERR_INVALID_AUTH_CREDENTIALS:
|
| + case HttpNegotiateConstants.ERR_INVALID_RESPONSE:
|
| + case HttpNegotiateConstants.ERR_MALFORMED_IDENTITY:
|
| + return HttpNegotiateConstants.STATUS_CODE_REQUEST_ERROR;
|
| +
|
| + default:
|
| + return 42;
|
| + }
|
| + }
|
| +
|
| @VisibleForTesting
|
| native void nativeSetResult(
|
| long nativeJavaNegotiateResultWrapper, int status, String authToken);
|
|
|