import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.protocol.Protocol;
+import org.apache.http.conn.ssl.BrowserCompatHostnameVerifier;
+import org.apache.http.conn.ssl.X509HostnameVerifier;
import com.owncloud.android.AccountUtils;
-import com.owncloud.android.authenticator.AccountAuthenticator;
-import com.owncloud.android.utils.OwnCloudVersion;
import eu.alefzero.webdav.WebdavClient;
private static Protocol mDefaultHttpsProtocol = null;
private static AdvancedSslSocketFactory mAdvancedSslSocketFactory = null;
+
+ private static X509HostnameVerifier mHostnameVerifier = null;
/**
public static WebdavClient createOwnCloudClient (Account account, Context context) {
Log.d(TAG, "Creating WebdavClient associated to " + account.name);
- String baseUrl = AccountManager.get(context).getUserData(account, AccountAuthenticator.KEY_OC_BASE_URL);
- OwnCloudVersion ownCloudVersion = new OwnCloudVersion(AccountManager.get(context).getUserData(account, AccountAuthenticator.KEY_OC_VERSION));
- String webDavPath = AccountUtils.getWebdavPath(ownCloudVersion);
-
- WebdavClient client = createOwnCloudClient(Uri.parse(baseUrl + webDavPath), context);
+ Uri uri = Uri.parse(AccountUtils.constructFullURLForAccount(context, account));
+ WebdavClient client = createOwnCloudClient(uri, context);
String username = account.name.substring(0, account.name.lastIndexOf('@'));
String password = AccountManager.get(context).getPassword(account);
}
}
- private static AdvancedSslSocketFactory getAdvancedSslSocketFactory(Context context) throws GeneralSecurityException, IOException {
+ public static AdvancedSslSocketFactory getAdvancedSslSocketFactory(Context context) throws GeneralSecurityException, IOException {
if (mAdvancedSslSocketFactory == null) {
KeyStore trustStore = getKnownServersStore(context);
AdvancedX509TrustManager trustMgr = new AdvancedX509TrustManager(trustStore);
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, tms, null);
- /*} catch (KeyStoreException e) {
- e.printStackTrace();
-
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
-
- } catch (KeyManagementException e) {
- e.printStackTrace();
-
- }*/
- mAdvancedSslSocketFactory = new AdvancedSslSocketFactory(sslContext, null); // TODO HOST NAME VERIFIER
+ mHostnameVerifier = new BrowserCompatHostnameVerifier();
+ mAdvancedSslSocketFactory = new AdvancedSslSocketFactory(sslContext, trustMgr, mHostnameVerifier);
}
return mAdvancedSslSocketFactory;
}