mirror of
				https://github.com/owncloud/android-library.git
				synced 2025-10-30 18:07:38 +00:00 
			
		
		
		
	Fix problem with certificate exception catching
This commit is contained in:
		
							parent
							
								
									7d0c79876c
								
							
						
					
					
						commit
						096d3b9165
					
				| @ -100,7 +100,7 @@ public class AdvancedX509TrustManager implements X509TrustManager { | |||||||
|      * @see javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[], |      * @see javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[], | ||||||
|      *      String authType) |      *      String authType) | ||||||
|      */ |      */ | ||||||
|     public void checkServerTrusted(X509Certificate[] certificates, String authType) throws CertificateException { |     public void checkServerTrusted(X509Certificate[] certificates, String authType) { | ||||||
|         if (!isKnownServer(certificates[0])) { |         if (!isKnownServer(certificates[0])) { | ||||||
|         	CertificateCombinedException result = new CertificateCombinedException(certificates[0]); |         	CertificateCombinedException result = new CertificateCombinedException(certificates[0]); | ||||||
|         	try { |         	try { | ||||||
|  | |||||||
| @ -118,6 +118,22 @@ public class RemoteOperationResult<T extends Object> | |||||||
|                 code == ResultCode.OK_REDIRECT_TO_NON_SECURE_CONNECTION); |                 code == ResultCode.OK_REDIRECT_TO_NON_SECURE_CONNECTION); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * Create a new RemoteOperationResult based on the result given by a previous one. | ||||||
|  |      * It does not copy the data. | ||||||
|  |      * @param prevRemoteOperation | ||||||
|  |      */ | ||||||
|  |     public RemoteOperationResult(RemoteOperationResult prevRemoteOperation) { | ||||||
|  |         mCode = prevRemoteOperation.mCode; | ||||||
|  |         mHttpCode = prevRemoteOperation.mHttpCode; | ||||||
|  |         mHttpPhrase = prevRemoteOperation.mHttpPhrase; | ||||||
|  |         mAuthenticate = prevRemoteOperation.mAuthenticate; | ||||||
|  |         mException = prevRemoteOperation.mException; | ||||||
|  |         mLastPermanentLocation = prevRemoteOperation.mLastPermanentLocation; | ||||||
|  |         mSuccess = prevRemoteOperation.mSuccess; | ||||||
|  |         mRedirectedLocation = prevRemoteOperation.mRedirectedLocation; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     /** |     /** | ||||||
|      * Public constructor from exception. |      * Public constructor from exception. | ||||||
|      * |      * | ||||||
|  | |||||||
| @ -31,6 +31,7 @@ import android.net.Uri; | |||||||
| import com.owncloud.android.lib.common.OwnCloudClient; | import com.owncloud.android.lib.common.OwnCloudClient; | ||||||
| import com.owncloud.android.lib.common.http.HttpConstants; | import com.owncloud.android.lib.common.http.HttpConstants; | ||||||
| import com.owncloud.android.lib.common.http.methods.nonwebdav.GetMethod; | import com.owncloud.android.lib.common.http.methods.nonwebdav.GetMethod; | ||||||
|  | import com.owncloud.android.lib.common.network.CertificateCombinedException; | ||||||
| import com.owncloud.android.lib.common.operations.RemoteOperation; | import com.owncloud.android.lib.common.operations.RemoteOperation; | ||||||
| import com.owncloud.android.lib.common.operations.RemoteOperationResult; | import com.owncloud.android.lib.common.operations.RemoteOperationResult; | ||||||
| import com.owncloud.android.lib.common.utils.Log_OC; | import com.owncloud.android.lib.common.utils.Log_OC; | ||||||
| @ -41,6 +42,8 @@ import org.json.JSONObject; | |||||||
| import java.net.URL; | import java.net.URL; | ||||||
| import java.util.concurrent.TimeUnit; | import java.util.concurrent.TimeUnit; | ||||||
| 
 | 
 | ||||||
|  | import javax.net.ssl.SSLException; | ||||||
|  | import javax.net.ssl.SSLHandshakeException; | ||||||
| import javax.net.ssl.SSLPeerUnverifiedException; | import javax.net.ssl.SSLPeerUnverifiedException; | ||||||
| 
 | 
 | ||||||
| import static com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode.OK; | import static com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode.OK; | ||||||
| @ -88,8 +91,8 @@ public class GetRemoteStatusOperation extends RemoteOperation<OwnCloudVersion> { | |||||||
|             try { |             try { | ||||||
|                 status = client.executeHttpMethod(getMethod); |                 status = client.executeHttpMethod(getMethod); | ||||||
|                 mLatestResult = new RemoteOperationResult(OK); |                 mLatestResult = new RemoteOperationResult(OK); | ||||||
|             } catch (SSLPeerUnverifiedException certEx) { |             } catch (SSLException sslE) { | ||||||
|                 mLatestResult = new RemoteOperationResult(certEx); |                 mLatestResult = new RemoteOperationResult(sslE); | ||||||
|                 return false; |                 return false; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user