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 2012/12/17 03:45:39 UTC
[1/4] git commit: api: Fix ApiServer role base acl logic and response
type value
Updated Branches:
refs/heads/api_refactoring efa034e82 -> 59fc89abe
api: Fix ApiServer role base acl logic and response type value
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/59fc89ab
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/59fc89ab
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/59fc89ab
Branch: refs/heads/api_refactoring
Commit: 59fc89abe31df863e891c36b64336700eb100d3d
Parents: 429b430
Author: Rohit Yadav <bh...@apache.org>
Authored: Sun Dec 16 18:13:29 2012 -0800
Committer: Rohit Yadav <bh...@apache.org>
Committed: Sun Dec 16 18:13:29 2012 -0800
----------------------------------------------------------------------
server/src/com/cloud/api/ApiServer.java | 19 +++++++++++--------
1 files changed, 11 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/59fc89ab/server/src/com/cloud/api/ApiServer.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java
index c7cbaa1..bb2044f 100755
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -36,7 +36,6 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Properties;
import java.util.Set;
import java.util.TimeZone;
import java.util.concurrent.ExecutorService;
@@ -243,6 +242,11 @@ public class ApiServer implements HttpRequestHandler {
parameterMap.put(/* name */paramValue[0], /* value */new String[] { paramValue[1] });
}
}
+
+ // Check responseType, if not among valid types, fallback to XML
+ if (!(responseType.equals(BaseCmd.RESPONSE_TYPE_JSON) || responseType.equals(BaseCmd.RESPONSE_TYPE_XML)))
+ responseType = BaseCmd.RESPONSE_TYPE_XML;
+
try {
// always trust commands from API port, user context will always be UID_SYSTEM/ACCOUNT_ID_SYSTEM
UserContext.registerContext(_systemUser.getId(), _systemAccount, null, true);
@@ -769,18 +773,17 @@ public class ApiServer implements HttpRequestHandler {
}
private boolean isCommandAvailable(User user, String commandName) {
- for(APIAccessChecker apichecker : _apiAccessCheckers) {
- // Break on the first adapter that validates
- // FIXME: In case of multiple adapters, this may not be the best way of validation. See CLOUDSTACK-618
- if (apichecker.canAccessAPI(user, commandName))
- return true;
+ for (APIAccessChecker apiChecker : _apiAccessCheckers) {
+ // Fail the checking if any checker fails to verify
+ if (!apiChecker.canAccessAPI(user, commandName))
+ return false;
}
- return false;
+ return true;
}
private String getCmdClassName(String cmdName) {
String cmdClassName = null;
- for(APIAccessChecker apiChecker : _apiAccessCheckers){
+ for (APIAccessChecker apiChecker : _apiAccessCheckers){
cmdClassName = apiChecker.getApiCommands().getProperty(cmdName);
// Break on the first non-null value
if (cmdClassName != null)