mirror of
				https://github.com/owncloud/android-library.git
				synced 2025-10-31 02:17:41 +00:00 
			
		
		
		
	clean up http client
This commit is contained in:
		
							parent
							
								
									0313c1e103
								
							
						
					
					
						commit
						79e4287223
					
				| @ -74,35 +74,41 @@ public class HttpClient { | |||||||
|             try { |             try { | ||||||
|                 final X509TrustManager trustManager = new AdvancedX509TrustManager( |                 final X509TrustManager trustManager = new AdvancedX509TrustManager( | ||||||
|                         NetworkUtils.getKnownServersStore(sContext)); |                         NetworkUtils.getKnownServersStore(sContext)); | ||||||
|                 final SSLSocketFactory sslSocketFactory = getNewSslSocketFactory(trustManager); | 
 | ||||||
|  | 
 | ||||||
|  |                 final SSLContext sslContext = buildSSLContext(); | ||||||
|  |                 sslContext.init(null, new TrustManager[]{trustManager}, null); | ||||||
|  |                 final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); | ||||||
|  | 
 | ||||||
|                 // Automatic cookie handling, NOT PERSISTENT |                 // Automatic cookie handling, NOT PERSISTENT | ||||||
|                 final CookieJar cookieJar = new CookieJarImpl(mCookieStore); |                 final CookieJar cookieJar = new CookieJarImpl(mCookieStore); | ||||||
| 
 |  | ||||||
|                 // TODO: Not verifying the hostname against certificate. ask owncloud security human if this is ok. |  | ||||||
|                 //.hostnameVerifier(new BrowserCompatHostnameVerifier()); |  | ||||||
|                 mOkHttpClient = buildNewOkHttpClient(sslSocketFactory, trustManager, cookieJar); |                 mOkHttpClient = buildNewOkHttpClient(sslSocketFactory, trustManager, cookieJar); | ||||||
| 
 | 
 | ||||||
|  |             } catch(NoSuchAlgorithmException nsae){ | ||||||
|  |                 Timber.e(nsae, "Could not setup SSL system."); | ||||||
|  |                 throw new RuntimeException("Could not setup okHttp client.", nsae); | ||||||
|             } catch (Exception e) { |             } catch (Exception e) { | ||||||
|                 Timber.e(e, "Could not setup SSL system."); |                 Timber.e(e, "Could not setup okHttp client."); | ||||||
|  |                 throw new RuntimeException("Could not setup okHttp client.", e); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         return mOkHttpClient; |         return mOkHttpClient; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private static SSLContext getSslContext() throws NoSuchAlgorithmException { |     private SSLContext buildSSLContext() throws NoSuchAlgorithmException { | ||||||
|         try { |         try { | ||||||
|             return SSLContext.getInstance(TlsVersion.TLS_1_3.javaName()); |             return SSLContext.getInstance("TLSv1.3"); | ||||||
|         } catch (NoSuchAlgorithmException tlsv13Exception) { |         } catch (NoSuchAlgorithmException tlsv13Exception) { | ||||||
|             try { |             try { | ||||||
|                 Timber.w("TLSv1.3 is not supported in this device; falling through TLSv1.2"); |                 Timber.w("TLSv1.3 is not supported in this device; falling through TLSv1.2"); | ||||||
|                 return SSLContext.getInstance(TlsVersion.TLS_1_2.javaName()); |                 return SSLContext.getInstance("TLSv1.2"); | ||||||
|             } catch (NoSuchAlgorithmException tlsv12Exception) { |             } catch (NoSuchAlgorithmException tlsv12Exception) { | ||||||
|                 try { |                 try { | ||||||
|                     Timber.w("TLSv1.2 is not supported in this device; falling through TLSv1.1"); |                     Timber.w("TLSv1.2 is not supported in this device; falling through TLSv1.1"); | ||||||
|                     return SSLContext.getInstance(TlsVersion.TLS_1_1.javaName()); |                     return SSLContext.getInstance("TLSv1.1"); | ||||||
|                 } catch (NoSuchAlgorithmException tlsv11Exception) { |                 } catch (NoSuchAlgorithmException tlsv11Exception) { | ||||||
|                     Timber.w("TLSv1.1 is not supported in this device; falling through TLSv1.0"); |                     Timber.w("TLSv1.1 is not supported in this device; falling through TLSv1.0"); | ||||||
|                     return SSLContext.getInstance(TlsVersion.TLS_1_0.javaName()); |                     return SSLContext.getInstance("TLSv1"); | ||||||
|                     // should be available in any device; see reference of supported protocols in |                     // should be available in any device; see reference of supported protocols in | ||||||
|                     // http://developer.android.com/reference/javax/net/ssl/SSLSocket.html |                     // http://developer.android.com/reference/javax/net/ssl/SSLSocket.html | ||||||
|                 } |                 } | ||||||
| @ -110,13 +116,6 @@ public class HttpClient { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private static SSLSocketFactory getNewSslSocketFactory(X509TrustManager trustManager) |  | ||||||
|             throws NoSuchAlgorithmException, KeyManagementException { |  | ||||||
|         final SSLContext sslContext = getSslContext(); |  | ||||||
|         sslContext.init(null, new TrustManager[]{trustManager}, null); |  | ||||||
|         return sslContext.getSocketFactory(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private OkHttpClient buildNewOkHttpClient(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager, |     private OkHttpClient buildNewOkHttpClient(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager, | ||||||
|                                                      CookieJar cookieJar) { |                                                      CookieJar cookieJar) { | ||||||
|         return new OkHttpClient.Builder() |         return new OkHttpClient.Builder() | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user