Remove initial HEAD request in HttpDownloader.setupConnection(), just add

credentials if present, fix checkstyle error in ManageReposActivity.
This commit is contained in:
Christian Morgner 2015-11-16 21:02:39 +01:00
parent caabec7ef9
commit 0df276eefc
2 changed files with 5 additions and 34 deletions

View File

@ -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()));
}
}
}

View File

@ -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