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;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import org.fdroid.fdroid.FDroidApp;
|
||||
@ -98,32 +99,10 @@ public class HttpDownloader extends Downloader {
|
||||
connection = (HttpURLConnection) sourceUrl.openConnection(proxy);
|
||||
} else {
|
||||
|
||||
// send HEAD request first, then GET afterwards
|
||||
connection = (HttpURLConnection) sourceUrl.openConnection();
|
||||
connection.setRequestMethod("HEAD");
|
||||
|
||||
// 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()));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(password)) {
|
||||
// add authorization header from username / password if set
|
||||
connection.setRequestProperty("Authorization", "Basic " + Base64.encodeBase64String((username + ":" + password).getBytes()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -71,7 +71,6 @@ import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.util.Locale;
|
||||
import org.apache.commons.net.util.Base64;
|
||||
|
||||
public class ManageReposActivity extends ActionBarActivity {
|
||||
private static final String TAG = "ManageReposActivity";
|
||||
@ -491,16 +490,9 @@ public class ManageReposActivity extends ActionBarActivity {
|
||||
final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
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();
|
||||
|
||||
return statusCode == 401 || statusCode == 200;
|
||||
return statusCode == 401 || statusCode == 200;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user