You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2013/01/03 03:44:12 UTC

[2/4] git commit: plugin: Remove memory mapping of apiname and class name in StaticRoleBasedAPIAccessChecker

plugin: Remove memory mapping of apiname and class name in StaticRoleBasedAPIAccessChecker

Signed-off-by: Rohit Yadav <bh...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/c5b51b7c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/c5b51b7c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/c5b51b7c

Branch: refs/heads/api_refactoring
Commit: c5b51b7c39d3215c412f47d272d204ec276a4bf1
Parents: 65e4f00
Author: Rohit Yadav <bh...@apache.org>
Authored: Wed Jan 2 18:21:54 2013 -0800
Committer: Rohit Yadav <bh...@apache.org>
Committed: Wed Jan 2 18:43:59 2013 -0800

----------------------------------------------------------------------
 .../acl/StaticRoleBasedAPIAccessChecker.java       |   56 ++++++---------
 1 files changed, 23 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c5b51b7c/plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
----------------------------------------------------------------------
diff --git a/plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java b/plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
index 5a7af55..aee708d 100644
--- a/plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
+++ b/plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
@@ -58,7 +58,6 @@ public class StaticRoleBasedAPIAccessChecker extends AdapterBase implements APIA
     private static List<String> s_adminCommands = null;
     private static List<String> s_resourceDomainAdminCommands = null;
     private static List<String> s_allCommands = null;
-    private Properties _apiCommands = null;
 
     protected @Inject AccountManager _accountMgr;
 
@@ -87,11 +86,6 @@ public class StaticRoleBasedAPIAccessChecker extends AdapterBase implements APIA
         return commandExists;
     }
 
-    @Override
-    public Properties getApiCommands() {
-        return _apiCommands;
-    }
-
     private static boolean isCommandAvailableForAccount(short accountType, String commandName) {
         boolean isCommandAvailable = false;
         switch (accountType) {
@@ -130,9 +124,6 @@ public class StaticRoleBasedAPIAccessChecker extends AdapterBase implements APIA
     }
 
     private void processConfigFiles(List<String> configFiles) {
-        if (_apiCommands == null)
-            _apiCommands = new Properties();
-
         Properties preProcessedCommands = new Properties();
 
         for (String configFile : configFiles) {
@@ -160,31 +151,30 @@ public class StaticRoleBasedAPIAccessChecker extends AdapterBase implements APIA
 
         for (Object key : preProcessedCommands.keySet()) {
             String preProcessedCommand = preProcessedCommands.getProperty((String) key);
-            String[] commandParts = preProcessedCommand.split(";");
-            _apiCommands.setProperty(key.toString(), commandParts[0]);
-
-            if (commandParts.length > 1) {
-                try {
-                    short cmdPermissions = Short.parseShort(commandParts[1]);
-                    if ((cmdPermissions & ADMIN_COMMAND) != 0) {
-                        s_adminCommands.add((String) key);
-                    }
-                    if ((cmdPermissions & RESOURCE_DOMAIN_ADMIN_COMMAND) != 0) {
-                        s_resourceDomainAdminCommands.add((String) key);
-                    }
-                    if ((cmdPermissions & DOMAIN_ADMIN_COMMAND) != 0) {
-                        s_resellerCommands.add((String) key);
-                    }
-                    if ((cmdPermissions & USER_COMMAND) != 0) {
-                        s_userCommands.add((String) key);
-                    }
-                    s_allCommands.addAll(s_adminCommands);
-                    s_allCommands.addAll(s_resourceDomainAdminCommands);
-                    s_allCommands.addAll(s_userCommands);
-                    s_allCommands.addAll(s_resellerCommands);
-                } catch (NumberFormatException nfe) {
-                    s_logger.info("Malformed command.properties permissions value, key = " + key + ", value = " + preProcessedCommand);
+            int splitIndex = preProcessedCommand.lastIndexOf(";");
+            // Backward compatible to old style, apiname=pkg;mask
+            String mask = preProcessedCommand.substring(splitIndex+1);
+
+            try {
+                short cmdPermissions = Short.parseShort(mask);
+                if ((cmdPermissions & ADMIN_COMMAND) != 0) {
+                    s_adminCommands.add((String) key);
+                }
+                if ((cmdPermissions & RESOURCE_DOMAIN_ADMIN_COMMAND) != 0) {
+                    s_resourceDomainAdminCommands.add((String) key);
+                }
+                if ((cmdPermissions & DOMAIN_ADMIN_COMMAND) != 0) {
+                    s_resellerCommands.add((String) key);
+                }
+                if ((cmdPermissions & USER_COMMAND) != 0) {
+                    s_userCommands.add((String) key);
                 }
+                s_allCommands.addAll(s_adminCommands);
+                s_allCommands.addAll(s_resourceDomainAdminCommands);
+                s_allCommands.addAll(s_userCommands);
+                s_allCommands.addAll(s_resellerCommands);
+            } catch (NumberFormatException nfe) {
+                s_logger.info("Malformed command.properties permissions value, key = " + key + ", value = " + preProcessedCommand);
             }
         }
     }