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); |