From 4a4ec859bda463b176fdcdfca1862285bca78afb Mon Sep 17 00:00:00 2001 From: Thomas Graichen Date: Wed, 19 Aug 2015 16:48:32 +0200 Subject: [PATCH] Add adminUserDomainName and adminProjectDomainName to monasca-api add adminUserDomainName and adminProjectDomainName to api-config.yaml to scope the username or projectname with a domainname Change-Id: I12e0a1594961ef15eac6e401521d05a15a2014ad Closes-Bug: #1484594 --- .../common/middleware/AuthConstants.java | 2 ++ .../monasca/common/middleware/Config.java | 12 ++++++++++ .../common/middleware/HttpAuthClient.java | 24 ++++++++++++++----- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/java/monasca-common-middleware/src/main/java/monasca/common/middleware/AuthConstants.java b/java/monasca-common-middleware/src/main/java/monasca/common/middleware/AuthConstants.java index fa78a267..0977bea7 100644 --- a/java/monasca-common-middleware/src/main/java/monasca/common/middleware/AuthConstants.java +++ b/java/monasca-common-middleware/src/main/java/monasca/common/middleware/AuthConstants.java @@ -245,5 +245,7 @@ public interface AuthConstants { public static final String ADMIN_SECRET_KEY = "AdminSecretKey"; public static final String ADMIN_PROJECT_ID = "AdminProjectId"; public static final String ADMIN_PROJECT_NAME = "AdminProjectName"; + public static final String ADMIN_USER_DOMAIN_NAME = "AdminUserDomainName"; + public static final String ADMIN_PROJECT_DOMAIN_NAME = "AdminProjectDomainName"; } diff --git a/java/monasca-common-middleware/src/main/java/monasca/common/middleware/Config.java b/java/monasca-common-middleware/src/main/java/monasca/common/middleware/Config.java index d123ddc7..67134469 100644 --- a/java/monasca-common-middleware/src/main/java/monasca/common/middleware/Config.java +++ b/java/monasca-common-middleware/src/main/java/monasca/common/middleware/Config.java @@ -59,6 +59,8 @@ public class Config implements AuthConstants { // configuration for admin default project private String adminProjectId; private String adminProjectName; + private String adminUserDomainName; + private String adminProjectDomainName; // flag to indicate if the filter is already intialized with required parameters private volatile boolean initialized = false; @@ -107,6 +109,8 @@ public class Config implements AuthConstants { adminAuthMethod = getValue(ADMIN_AUTH_METHOD, ""); adminProjectId = getValue(ADMIN_PROJECT_ID, ""); adminProjectName = getValue(ADMIN_PROJECT_NAME, ""); + adminUserDomainName = getValue(ADMIN_USER_DOMAIN_NAME, ""); + adminProjectDomainName = getValue(ADMIN_PROJECT_DOMAIN_NAME, ""); timeToCacheToken = getValue(TIME_TO_CACHE_TOKEN, 600); long maxTokenCacheSize = getValue(MAX_TOKEN_CACHE_SIZE, 1048576); @@ -147,6 +151,14 @@ public class Config implements AuthConstants { return adminProjectName; } + protected String getAdminUserDomainName(){ + return adminUserDomainName; + } + + protected String getAdminProjectDomainName(){ + return adminProjectDomainName; + } + protected String getAdminAccessKey() { if (context.getAttribute(ADMIN_ACCESS_KEY) != null) { return (String) context.getAttribute(ADMIN_ACCESS_KEY); diff --git a/java/monasca-common-middleware/src/main/java/monasca/common/middleware/HttpAuthClient.java b/java/monasca-common-middleware/src/main/java/monasca/common/middleware/HttpAuthClient.java index f69934c1..e402b554 100644 --- a/java/monasca-common-middleware/src/main/java/monasca/common/middleware/HttpAuthClient.java +++ b/java/monasca-common-middleware/src/main/java/monasca/common/middleware/HttpAuthClient.java @@ -244,14 +244,19 @@ public class HttpAuthClient implements AuthClient { } private String buildAuth(final String userName, final String password, - final String projectId, final String projectName) { - final JsonObject domain = new JsonObject(); - domain.addProperty("id", "default"); + final String projectId, final String projectName, + final String userDomainName, final String projectDomainName) { + final JsonObject UserDomain = new JsonObject(); + if (!userDomainName.isEmpty()) { + UserDomain.addProperty("name", userDomainName); + } else { + UserDomain.addProperty("id", "default"); + } final JsonObject user = new JsonObject(); user.addProperty("name", userName); user.addProperty("password", password); - user.add("domain", domain); + user.add("domain", UserDomain); final JsonObject passwordHolder = new JsonObject(); passwordHolder.add("user", user); @@ -271,7 +276,13 @@ public class HttpAuthClient implements AuthClient { scopeDefined = true; } else if (!projectName.isEmpty()) { - project.add("domain", domain); + final JsonObject ProjectDomain = new JsonObject(); + if (!projectDomainName.isEmpty()) { + ProjectDomain.addProperty("name", projectDomainName); + } else { + ProjectDomain.addProperty("id", "default"); + } + project.add("domain", ProjectDomain); project.addProperty("name", projectName); scopeDefined = true; } @@ -294,7 +305,8 @@ public class HttpAuthClient implements AuthClient { final String body; if (appConfig.getAdminAuthMethod().equalsIgnoreCase(Config.PASSWORD)) { body = buildAuth(appConfig.getAdminUser(), appConfig.getAdminPassword(), - appConfig.getAdminProjectId(), appConfig.getAdminProjectName()); + appConfig.getAdminProjectId(), appConfig.getAdminProjectName(), + appConfig.getAdminUserDomainName(), appConfig.getAdminProjectDomainName()); } else { String msg =