Browse Source

OC-2465: Move getUserNameForSamlSso to AccountUtils in oc_framework

masensio 11 years ago
parent
commit
fe6ab707e4

+ 22 - 0
oc_framework/src/com/owncloud/android/oc_framework/accounts/AccountUtils.java

@@ -24,6 +24,7 @@ import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.accounts.AccountsException;
 import android.content.Context;
+import android.net.Uri;
 
 public class AccountUtils {
     public static final String WEBDAV_PATH_1_2 = "/webdav/owncloud.php";
@@ -34,6 +35,9 @@ public class AccountUtils {
     public static final String CARDDAV_PATH_2_0 = "/apps/contacts/carddav.php";
     public static final String CARDDAV_PATH_4_0 = "/remote/carddav.php";
     public static final String STATUS_PATH = "/status.php";
+    
+    // Key for UserName in Saml Cookie
+    private static final String KEY_OC_USERNAME_EQUALS = "oc_username=";
 
     /**
      * 
@@ -125,5 +129,23 @@ public class AccountUtils {
             return mFailedAccount;
         }
     }
+    
+    /** 
+     * Get the UserName for the SamlSso cookie
+     * @param authToken
+     * @return userName
+     */
+    public static String getUserNameForSamlSso(String authToken) {
+        if (authToken != null) {
+            String [] cookies = authToken.split(";");
+            for (int i=0; i<cookies.length; i++) {
+                if (cookies[i].startsWith(KEY_OC_USERNAME_EQUALS )) {
+                    String value = Uri.decode(cookies[i].substring(KEY_OC_USERNAME_EQUALS.length()));
+                    return value;
+                }
+            }
+        }
+        return "";
+    }
 
 }

+ 17 - 16
src/com/owncloud/android/authentication/AuthenticatorActivity.java

@@ -103,7 +103,8 @@ implements  OnRemoteOperationListener, OnSslValidatorListener, OnFocusChangeList
     private static final String KEY_AUTH_STATUS_ICON = "AUTH_STATUS_ICON";
     private static final String KEY_REFRESH_BUTTON_ENABLED = "KEY_REFRESH_BUTTON_ENABLED";
     
-    private static final String KEY_OC_USERNAME_EQUALS = "oc_username=";
+    // TODO Remove it
+    //private static final String KEY_OC_USERNAME_EQUALS = "oc_username="; 
 
     private static final String AUTH_ON = "on";
     private static final String AUTH_OFF = "off";
@@ -1177,7 +1178,7 @@ implements  OnRemoteOperationListener, OnSslValidatorListener, OnFocusChangeList
             mAccountMgr.setAuthToken(mAccount, mAuthTokenType, mAuthToken);
             
         } else if (AccountTypeUtils.getAuthTokenTypeSamlSessionCookie(MainApp.getAccountType()).equals(mAuthTokenType)) {
-            String username = getUserNameForSamlSso();
+            String username = com.owncloud.android.oc_framework.accounts.AccountUtils.getUserNameForSamlSso(mAuthToken);
             if (!mUsernameInput.getText().toString().equals(username)) {
                 // fail - not a new account, but an existing one; disallow
                 RemoteOperationResult result = new RemoteOperationResult(ResultCode.ACCOUNT_NOT_THE_SAME); 
@@ -1217,7 +1218,7 @@ implements  OnRemoteOperationListener, OnSslValidatorListener, OnFocusChangeList
         Uri uri = Uri.parse(mHostBaseUrl);
         String username = mUsernameInput.getText().toString().trim();
         if (isSaml) {
-            username = getUserNameForSamlSso();
+            username = com.owncloud.android.oc_framework.accounts.AccountUtils.getUserNameForSamlSso(mAuthToken);
             
         } else if (isOAuth) {
             username = "OAuth_user" + (new java.util.Random(System.currentTimeMillis())).nextLong();
@@ -1279,19 +1280,19 @@ implements  OnRemoteOperationListener, OnSslValidatorListener, OnFocusChangeList
         }
     }
 
-    
-    private String getUserNameForSamlSso() {
-        if (mAuthToken != null) {
-            String [] cookies = mAuthToken.split(";");
-            for (int i=0; i<cookies.length; i++) {
-                if (cookies[i].startsWith(KEY_OC_USERNAME_EQUALS )) {
-                    String value = Uri.decode(cookies[i].substring(KEY_OC_USERNAME_EQUALS.length()));
-                    return value;
-                }
-            }
-        }
-        return "";
-    }
+// TODO Remove it
+//    private String getUserNameForSamlSso() {
+//        if (mAuthToken != null) {
+//            String [] cookies = mAuthToken.split(";");
+//            for (int i=0; i<cookies.length; i++) {
+//                if (cookies[i].startsWith(KEY_OC_USERNAME_EQUALS )) {
+//                    String value = Uri.decode(cookies[i].substring(KEY_OC_USERNAME_EQUALS.length()));
+//                    return value;
+//                }
+//            }
+//        }
+//        return "";
+//    }
 
 
     /**