From 4f0cd82a7d2fc045538e4c371dffd372217f8d00 Mon Sep 17 00:00:00 2001 From: davigonz Date: Tue, 5 Jun 2018 10:40:23 +0200 Subject: [PATCH] Clear basic credentials before applying new ones --- .../authentication/OwnCloudBasicCredentials.java | 12 +++++++----- .../lib/common/interceptors/HttpInterceptor.java | 9 --------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/com/owncloud/android/lib/common/authentication/OwnCloudBasicCredentials.java b/src/com/owncloud/android/lib/common/authentication/OwnCloudBasicCredentials.java index 0b7a6a7e..6650219d 100644 --- a/src/com/owncloud/android/lib/common/authentication/OwnCloudBasicCredentials.java +++ b/src/com/owncloud/android/lib/common/authentication/OwnCloudBasicCredentials.java @@ -25,7 +25,7 @@ package com.owncloud.android.lib.common.authentication; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.interceptors.BasicAuthInterceptor; -import com.owncloud.android.lib.common.interceptors.HttpInterceptor; +import com.owncloud.android.lib.common.interceptors.HttpInterceptor.RequestInterceptor; import org.apache.commons.httpclient.UsernamePasswordCredentials; import org.apache.commons.httpclient.auth.AuthPolicy; @@ -65,10 +65,12 @@ public class OwnCloudBasicCredentials implements OwnCloudCredentials { List authPrefs = new ArrayList<>(1); authPrefs.add(AuthPolicy.BASIC); - for (HttpInterceptor.RequestInterceptor requestInterceptor : - client.getBaseOkHttpInterceptor().getRequestInterceptors()) { + ArrayList requestInterceptors = client.getBaseOkHttpInterceptor().getRequestInterceptors(); + + // Clear previous basic credentials + for (RequestInterceptor requestInterceptor : requestInterceptors) { if (requestInterceptor instanceof BasicAuthInterceptor) { - return; + requestInterceptors.remove(requestInterceptor); } } @@ -77,7 +79,7 @@ public class OwnCloudBasicCredentials implements OwnCloudCredentials { new BasicAuthInterceptor(Credentials.basic(mUsername, mPassword)) ); - //TODO + //TODO Update from here down client.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs); client.getParams().setAuthenticationPreemptive(mAuthenticationPreemptive); client.getParams().setCredentialCharset(OwnCloudCredentialsFactory.CREDENTIAL_CHARSET); diff --git a/src/com/owncloud/android/lib/common/interceptors/HttpInterceptor.java b/src/com/owncloud/android/lib/common/interceptors/HttpInterceptor.java index acb8336e..560fe86a 100644 --- a/src/com/owncloud/android/lib/common/interceptors/HttpInterceptor.java +++ b/src/com/owncloud/android/lib/common/interceptors/HttpInterceptor.java @@ -82,13 +82,4 @@ public class HttpInterceptor implements Interceptor { public ArrayList getResponseInterceptors() { return mResponseInterceptors; } - - public boolean requestWithCredentials () { - for (RequestInterceptor requestInterceptor : mRequestInterceptors) { - if (requestInterceptor instanceof BasicAuthInterceptor) { - return true; - } - } - return false; - } }