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);
}
}
}