Remove initial HEAD request in HttpDownloader.setupConnection(), just add
credentials if present, fix checkstyle error in ManageReposActivity.
This commit is contained in:
parent
caabec7ef9
commit
0df276eefc
@ -1,6 +1,7 @@
|
|||||||
package org.fdroid.fdroid.net;
|
package org.fdroid.fdroid.net;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import org.fdroid.fdroid.FDroidApp;
|
import org.fdroid.fdroid.FDroidApp;
|
||||||
@ -98,33 +99,11 @@ public class HttpDownloader extends Downloader {
|
|||||||
connection = (HttpURLConnection) sourceUrl.openConnection(proxy);
|
connection = (HttpURLConnection) sourceUrl.openConnection(proxy);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
// send HEAD request first, then GET afterwards
|
|
||||||
connection = (HttpURLConnection) sourceUrl.openConnection();
|
connection = (HttpURLConnection) sourceUrl.openConnection();
|
||||||
connection.setRequestMethod("HEAD");
|
if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(password)) {
|
||||||
|
// add authorization header from username / password if set
|
||||||
// fetch HTTP status code and check for authentication
|
|
||||||
statusCode = connection.getResponseCode();
|
|
||||||
connection.disconnect();
|
|
||||||
|
|
||||||
// reset connection
|
|
||||||
connection = (HttpURLConnection) sourceUrl.openConnection();
|
|
||||||
|
|
||||||
// handle status codes
|
|
||||||
switch (statusCode) {
|
|
||||||
case 401:
|
|
||||||
|
|
||||||
final String userInfo = sourceUrl.getUserInfo();
|
|
||||||
if (userInfo != null) {
|
|
||||||
// add authorization header from user info in URL if present
|
|
||||||
connection.setRequestProperty("Authorization", "Basic " + Base64.encodeBase64String(userInfo.getBytes()));
|
|
||||||
} else {
|
|
||||||
// add authorization header from username / password
|
|
||||||
connection.setRequestProperty("Authorization", "Basic " + Base64.encodeBase64String((username + ":" + password).getBytes()));
|
connection.setRequestProperty("Authorization", "Basic " + Base64.encodeBase64String((username + ":" + password).getBytes()));
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,7 +71,6 @@ import java.net.URI;
|
|||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import org.apache.commons.net.util.Base64;
|
|
||||||
|
|
||||||
public class ManageReposActivity extends ActionBarActivity {
|
public class ManageReposActivity extends ActionBarActivity {
|
||||||
private static final String TAG = "ManageReposActivity";
|
private static final String TAG = "ManageReposActivity";
|
||||||
@ -491,13 +490,6 @@ public class ManageReposActivity extends ActionBarActivity {
|
|||||||
final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||||
connection.setRequestMethod("HEAD");
|
connection.setRequestMethod("HEAD");
|
||||||
|
|
||||||
// support discovery of Basic Auth repository URLs without login prompt
|
|
||||||
final String userInfo = url.getUserInfo();
|
|
||||||
if (userInfo != null) {
|
|
||||||
// authorize request
|
|
||||||
connection.setRequestProperty("Authorization", "Basic " + Base64.encodeBase64String(userInfo.getBytes()));
|
|
||||||
}
|
|
||||||
|
|
||||||
statusCode = connection.getResponseCode();
|
statusCode = connection.getResponseCode();
|
||||||
|
|
||||||
return statusCode == 401 || statusCode == 200;
|
return statusCode == 401 || statusCode == 200;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user