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
This commit is contained in:
Thomas Graichen 2015-08-19 16:48:32 +02:00
parent 908bd87609
commit 4a4ec859bd
3 changed files with 32 additions and 6 deletions

View File

@ -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";
}

View File

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

View File

@ -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 =