X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/48f13c8adc5c4b9bc4ca96bf13939a7d7cfae562..9aab2d26da38f26e7ff03a0b5db3bd01b51bce05:/src/com/owncloud/android/network/OwnCloudClientUtils.java diff --git a/src/com/owncloud/android/network/OwnCloudClientUtils.java b/src/com/owncloud/android/network/OwnCloudClientUtils.java index a76cd4a2..5cc7a9fb 100644 --- a/src/com/owncloud/android/network/OwnCloudClientUtils.java +++ b/src/com/owncloud/android/network/OwnCloudClientUtils.java @@ -34,10 +34,10 @@ import javax.net.ssl.TrustManager; 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; @@ -63,6 +63,8 @@ public class OwnCloudClientUtils { private static Protocol mDefaultHttpsProtocol = null; private static AdvancedSslSocketFactory mAdvancedSslSocketFactory = null; + + private static X509HostnameVerifier mHostnameVerifier = null; /** @@ -75,11 +77,8 @@ public class OwnCloudClientUtils { 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); @@ -191,7 +190,7 @@ public class OwnCloudClientUtils { } } - 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); @@ -200,17 +199,8 @@ public class OwnCloudClientUtils { 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; }