mirror of
				https://github.com/owncloud/android-library.git
				synced 2025-10-31 02:17:41 +00:00 
			
		
		
		
	Merge pull request #174 from owncloud/oauth2_support_bugfixing
Oauth2 support - bugfixing
This commit is contained in:
		
						commit
						c560f4fb4b
					
				| @ -58,6 +58,10 @@ import com.owncloud.android.lib.resources.status.OwnCloudVersion; | ||||
| 
 | ||||
| public class OwnCloudClient extends HttpClient { | ||||
| 
 | ||||
|     public static final String WEBDAV_PATH_4_0 = "/remote.php/webdav"; | ||||
|     public static final String STATUS_PATH = "/status.php"; | ||||
|     public static final String FILES_WEB_PATH = "/index.php/apps/files"; | ||||
| 
 | ||||
|     private static final String TAG = OwnCloudClient.class.getSimpleName(); | ||||
|     private static final int MAX_REDIRECTIONS_COUNT = 3; | ||||
|     private static final int MAX_REPEAT_COUNT_WITH_FRESH_CREDENTIALS = 1; | ||||
| @ -322,9 +326,7 @@ public class OwnCloudClient extends HttpClient { | ||||
|                     destination = method.getRequestHeader("destination"); | ||||
|                 } | ||||
|                 if (destination != null) { | ||||
|                     int suffixIndex = locationStr.lastIndexOf( | ||||
|                             AccountUtils.WEBDAV_PATH_4_0 | ||||
|                     ); | ||||
|                     int suffixIndex = locationStr.lastIndexOf(WEBDAV_PATH_4_0); | ||||
|                     String redirectionBase = locationStr.substring(0, suffixIndex); | ||||
| 
 | ||||
|                     String destinationStr = destination.getValue(); | ||||
| @ -378,7 +380,7 @@ public class OwnCloudClient extends HttpClient { | ||||
|     } | ||||
| 
 | ||||
|     public Uri getWebdavUri() { | ||||
|         return Uri.parse(mBaseUri + AccountUtils.WEBDAV_PATH_4_0); | ||||
|         return Uri.parse(mBaseUri + WEBDAV_PATH_4_0); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|  | ||||
| @ -51,9 +51,6 @@ public class AccountUtils { | ||||
| 
 | ||||
|     private static final String TAG = AccountUtils.class.getSimpleName(); | ||||
| 
 | ||||
|     public static final String WEBDAV_PATH_4_0 = "/remote.php/webdav"; | ||||
|     public static final String STATUS_PATH = "/status.php"; | ||||
| 
 | ||||
|     /** | ||||
|      * Constructs full url to host and webdav resource basing on host version | ||||
|      * | ||||
| @ -65,7 +62,7 @@ public class AccountUtils { | ||||
|     public static String getWebDavUrlForAccount(Context context, Account account) | ||||
|         throws AccountNotFoundException { | ||||
| 
 | ||||
|         return getBaseUrlForAccount(context, account) + WEBDAV_PATH_4_0; | ||||
|         return getBaseUrlForAccount(context, account) + OwnCloudClient.WEBDAV_PATH_4_0; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| @ -138,13 +135,13 @@ public class AccountUtils { | ||||
|         OwnCloudCredentials credentials = null; | ||||
|         AccountManager am = AccountManager.get(context); | ||||
| 
 | ||||
|         boolean isOauth2 = am.getUserData( | ||||
|             account, | ||||
|             AccountUtils.Constants.KEY_SUPPORTS_OAUTH2) != null; | ||||
|         String supportsOAuth2 = am.getUserData(account, AccountUtils.Constants.KEY_SUPPORTS_OAUTH2); | ||||
|         boolean isOauth2 = supportsOAuth2 != null && supportsOAuth2.equals("TRUE"); | ||||
| 
 | ||||
|         boolean isSamlSso = am.getUserData( | ||||
|             account, | ||||
|             AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null; | ||||
|         String supportsSamlSSo = am.getUserData(account, | ||||
|                 AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO); | ||||
| 
 | ||||
|         boolean isSamlSso = supportsSamlSSo != null && supportsSamlSSo.equals("TRUE"); | ||||
| 
 | ||||
|         String username = AccountUtils.getUsernameForAccount(account); | ||||
|         OwnCloudVersion version = new OwnCloudVersion(am.getUserData(account, Constants.KEY_OC_VERSION)); | ||||
|  | ||||
| @ -45,26 +45,28 @@ public class OAuth2QueryParser { | ||||
|     public Map<String, String> parse(String query) { | ||||
|         mOAuth2ParsedAuthorizationResponse.clear(); | ||||
| 
 | ||||
|         String[] pairs = query.split("&"); | ||||
|         int i = 0; | ||||
|         String key = ""; | ||||
|         String value; | ||||
|         while (pairs.length > i) { | ||||
|             int j = 0; | ||||
|             String[] part = pairs[i].split("="); | ||||
|             while (part.length > j) { | ||||
|                 String p = part[j]; | ||||
|                 if (j == 0) { | ||||
|                     key = p; | ||||
|                 } else if (j == 1) { | ||||
|                     value = p; | ||||
|                     mOAuth2ParsedAuthorizationResponse.put(key, value); | ||||
|                 } | ||||
|         if (query != null) { | ||||
|             String[] pairs = query.split("&"); | ||||
|             int i = 0; | ||||
|             String key = ""; | ||||
|             String value; | ||||
|             while (pairs.length > i) { | ||||
|                 int j = 0; | ||||
|                 String[] part = pairs[i].split("="); | ||||
|                 while (part.length > j) { | ||||
|                     String p = part[j]; | ||||
|                     if (j == 0) { | ||||
|                         key = p; | ||||
|                     } else if (j == 1) { | ||||
|                         value = p; | ||||
|                         mOAuth2ParsedAuthorizationResponse.put(key, value); | ||||
|                     } | ||||
| 
 | ||||
|                 Log_OC.v(TAG, "[" + i + "," + j + "] = " + p); | ||||
|                 j++; | ||||
|                     Log_OC.v(TAG, "[" + i + "," + j + "] = " + p); | ||||
|                     j++; | ||||
|                 } | ||||
|                 i++; | ||||
|             } | ||||
|             i++; | ||||
|         } | ||||
| 
 | ||||
|         return mOAuth2ParsedAuthorizationResponse; | ||||
|  | ||||
| @ -78,7 +78,7 @@ public class GetRemoteStatusOperation extends RemoteOperation { | ||||
|         GetMethod get = null; | ||||
|         String baseUrlSt = client.getBaseUri().toString(); | ||||
|         try { | ||||
|             get = new GetMethod(baseUrlSt + AccountUtils.STATUS_PATH); | ||||
|             get = new GetMethod(baseUrlSt + OwnCloudClient.STATUS_PATH); | ||||
| 
 | ||||
|             HttpParams params = get.getParams().getDefaultParams(); | ||||
|             params.setParameter(HttpMethodParams.USER_AGENT, | ||||
|  | ||||
| @ -297,7 +297,7 @@ public class OwnCloudClientTest extends AndroidTestCase { | ||||
| 		client.setCredentials(OwnCloudCredentialsFactory.newBearerCredentials("user", "fakeToken")); | ||||
| 		Uri webdavUri = client.getWebdavUri(); | ||||
| 		assertTrue("WebDAV URI does not point to the right entry point", | ||||
| 				webdavUri.getPath().endsWith(AccountUtils.WEBDAV_PATH_4_0)); | ||||
| 				webdavUri.getPath().endsWith(OwnCloudClient.WEBDAV_PATH_4_0)); | ||||
| 		assertTrue("WebDAV URI is not a subpath of base URI",  | ||||
| 				webdavUri.getAuthority().equals(mServerUri.getAuthority()) && | ||||
| 				webdavUri.getPath().startsWith(mServerUri.getPath())); | ||||
| @ -306,7 +306,7 @@ public class OwnCloudClientTest extends AndroidTestCase { | ||||
| 				mUsername, mPassword)); | ||||
| 		webdavUri = client.getWebdavUri(); | ||||
| 		assertTrue("WebDAV URI does not point to the right entry point", | ||||
| 				webdavUri.getPath().endsWith(AccountUtils.WEBDAV_PATH_4_0)); | ||||
| 				webdavUri.getPath().endsWith(OwnCloudClient.WEBDAV_PATH_4_0)); | ||||
| 		PropFindMethod propfind = null; | ||||
| 		try { | ||||
| 			propfind = new PropFindMethod(webdavUri + "/", | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user