You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2017/09/28 21:18:21 UTC

[1/2] airavata git commit: AIRAVATA-2508 Set admin password in Keycloak, gateway profile

Repository: airavata
Updated Branches:
  refs/heads/develop 430001c28 -> a27a82964


AIRAVATA-2508 Set admin password in Keycloak, gateway profile


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/52d92380
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/52d92380
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/52d92380

Branch: refs/heads/develop
Commit: 52d923807d672c54923a25b4b138b2efd21e8bc2
Parents: 6488090
Author: Marcus Christie <ma...@apache.org>
Authored: Tue Sep 19 12:11:21 2017 -0400
Committer: Marcus Christie <ma...@apache.org>
Committed: Tue Sep 19 12:39:57 2017 -0400

----------------------------------------------------------------------
 .../core/impl/TenantManagementKeycloakImpl.java | 11 ++---
 .../interfaces/TenantManagementInterface.java   |  3 +-
 .../services/core/tests/SetupNewGateway.java    |  2 +-
 .../handlers/IamAdminServicesHandler.java       | 13 +++--
 .../handlers/TenantProfileServiceHandler.java   | 50 ++++++++++++++++++++
 .../templates/airavata-server.properties.j2     |  1 -
 .../common/utils/ApplicationSettings.java       |  4 --
 .../airavata/common/utils/ServerSettings.java   |  1 -
 .../main/resources/airavata-server.properties   |  1 -
 .../service/handler/RegistryServerHandler.java  | 15 ++++++
 10 files changed, 81 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/52d92380/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/impl/TenantManagementKeycloakImpl.java
----------------------------------------------------------------------
diff --git a/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/impl/TenantManagementKeycloakImpl.java b/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/impl/TenantManagementKeycloakImpl.java
index e3ac6a3..344f2eb 100644
--- a/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/impl/TenantManagementKeycloakImpl.java
+++ b/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/impl/TenantManagementKeycloakImpl.java
@@ -154,7 +154,7 @@ public class TenantManagementKeycloakImpl implements TenantManagementInterface {
     }
 
     @Override
-    public boolean createTenantAdminAccount(PasswordCredential isSuperAdminPasswordCreds, Gateway gatewayDetails) throws IamAdminServicesException{
+    public boolean createTenantAdminAccount(PasswordCredential isSuperAdminPasswordCreds, Gateway gatewayDetails, String tenantAdminPassword) throws IamAdminServicesException{
         Keycloak client = null;
         try{
             client = TenantManagementKeycloakImpl.getClient(ServerSettings.getIamServerUrl(), this.superAdminRealmId, isSuperAdminPasswordCreds);
@@ -165,9 +165,6 @@ public class TenantManagementKeycloakImpl implements TenantManagementInterface {
             user.setEmail(gatewayDetails.getGatewayAdminEmail());
             user.setEmailVerified(true);
             user.setEnabled(true);
-            List<String> requiredActionList = new ArrayList<>();
-            requiredActionList.add("UPDATE_PASSWORD");
-            user.setRequiredActions(requiredActionList);
             Response httpResponse = client.realm(gatewayDetails.getGatewayId()).users().create(user);
             logger.info("Tenant Admin account creation exited with code : " + httpResponse.getStatus()+" : " +httpResponse.getStatusInfo());
             if (httpResponse.getStatus() == 201) { //HTTP code for record creation: HTTP 201
@@ -184,8 +181,8 @@ public class TenantManagementKeycloakImpl implements TenantManagementInterface {
 
                 CredentialRepresentation credential = new CredentialRepresentation();
                 credential.setType(CredentialRepresentation.PASSWORD);
-                credential.setValue(ServerSettings.getGatewayAdminTempPwd());
-                credential.setTemporary(true);
+                credential.setValue(tenantAdminPassword);
+                credential.setTemporary(false);
                 retrievedUser.resetPassword(credential);
                 List<ClientRepresentation> realmClients = client.realm(gatewayDetails.getGatewayId()).clients().findAll();
                 String realmManagementClientId=null;
@@ -234,8 +231,6 @@ public class TenantManagementKeycloakImpl implements TenantManagementInterface {
             pgaClient.setServiceAccountsEnabled(true);
             pgaClient.setFullScopeAllowed(true);
             pgaClient.setClientAuthenticatorType("client-secret");
-            String[] defaultRoles = {"gateway-user"};
-            pgaClient.setDefaultRoles(defaultRoles);
             List<String> redirectUris = new ArrayList<>();
             if(gatewayDetails.getGatewayURL()!=null){
                 String gatewayURL = gatewayDetails.getGatewayURL();

http://git-wip-us.apache.org/repos/asf/airavata/blob/52d92380/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/interfaces/TenantManagementInterface.java
----------------------------------------------------------------------
diff --git a/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/interfaces/TenantManagementInterface.java b/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/interfaces/TenantManagementInterface.java
index e181900..429453c 100644
--- a/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/interfaces/TenantManagementInterface.java
+++ b/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/interfaces/TenantManagementInterface.java
@@ -44,9 +44,10 @@ public interface TenantManagementInterface {
      *
      * @param isSuperAdminPasswordCreds identity server super admin credentials
      * @param gatewayDetails gateway details from workspace catalog
+     * @param gatewayAdminPassword password to use when creating tenant admin account
      * @return Gateway object.
      */
-    boolean createTenantAdminAccount(PasswordCredential isSuperAdminPasswordCreds, Gateway gatewayDetails) throws IamAdminServicesException;
+    boolean createTenantAdminAccount(PasswordCredential isSuperAdminPasswordCreds, Gateway gatewayDetails, String gatewayAdminPassword) throws IamAdminServicesException;
 
     /**
      * Method to configure application client in Identity Server

http://git-wip-us.apache.org/repos/asf/airavata/blob/52d92380/airavata-services/profile-service/iam-admin-services-core/src/test/java/org/apache/airavata/service/profile/iam/admin/services/core/tests/SetupNewGateway.java
----------------------------------------------------------------------
diff --git a/airavata-services/profile-service/iam-admin-services-core/src/test/java/org/apache/airavata/service/profile/iam/admin/services/core/tests/SetupNewGateway.java b/airavata-services/profile-service/iam-admin-services-core/src/test/java/org/apache/airavata/service/profile/iam/admin/services/core/tests/SetupNewGateway.java
index 1f1c915..3b9fae1 100644
--- a/airavata-services/profile-service/iam-admin-services-core/src/test/java/org/apache/airavata/service/profile/iam/admin/services/core/tests/SetupNewGateway.java
+++ b/airavata-services/profile-service/iam-admin-services-core/src/test/java/org/apache/airavata/service/profile/iam/admin/services/core/tests/SetupNewGateway.java
@@ -37,7 +37,7 @@ public class SetupNewGateway {
         TenantManagementKeycloakImpl client = new TenantManagementKeycloakImpl();
         try {
             client.addTenant(superAdminCreds, testGateway);
-            if (!client.createTenantAdminAccount(superAdminCreds, testGateway)) {
+            if (!client.createTenantAdminAccount(superAdminCreds, testGateway, "Test@123")) {
                 logger.error("Admin account creation failed !!, please refer error logs for reason");
             }
             Gateway gatewayWithIdAndSecret = client.configureClient(superAdminCreds, testGateway);

http://git-wip-us.apache.org/repos/asf/airavata/blob/52d92380/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/IamAdminServicesHandler.java
----------------------------------------------------------------------
diff --git a/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/IamAdminServicesHandler.java b/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/IamAdminServicesHandler.java
index 7b8a1e5..6ad75f3 100644
--- a/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/IamAdminServicesHandler.java
+++ b/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/IamAdminServicesHandler.java
@@ -71,14 +71,21 @@ public class IamAdminServicesHandler implements IamAdminServices.Iface {
         PasswordCredential isSuperAdminCredentials = getSuperAdminPasswordCredential();
         try {
             keycloakclient.addTenant(isSuperAdminCredentials, gateway);
-            if (!keycloakclient.createTenantAdminAccount(isSuperAdminCredentials, gateway)) {
+
+            // Load the tenant admin password stored in gateway request
+            CredentialStoreService.Client credentialStoreClient = getCredentialStoreServiceClient();
+            // Admin password token should already be stored under requested gateway's gatewayId
+            PasswordCredential tenantAdminPasswordCredential = credentialStoreClient.getPasswordCredential(gateway.getIdentityServerPasswordToken(), gateway.getGatewayId());
+
+            if (!keycloakclient.createTenantAdminAccount(isSuperAdminCredentials, gateway, tenantAdminPasswordCredential.getPassword())) {
                 logger.error("Admin account creation failed !!, please refer error logs for reason");
             }
             Gateway gatewayWithIdAndSecret = keycloakclient.configureClient(isSuperAdminCredentials, gateway);
             return gatewayWithIdAndSecret;
-        } catch (IamAdminServicesException ex) {
+        } catch (TException|ApplicationSettingsException ex) {
             logger.error("Gateway Setup Failed, reason: " + ex.getMessage(), ex);
-            throw ex;
+            IamAdminServicesException iamAdminServicesException = new IamAdminServicesException(ex.getMessage());
+            throw iamAdminServicesException;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/52d92380/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/TenantProfileServiceHandler.java
----------------------------------------------------------------------
diff --git a/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/TenantProfileServiceHandler.java b/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/TenantProfileServiceHandler.java
index 61601c3..ba894b9 100644
--- a/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/TenantProfileServiceHandler.java
+++ b/airavata-services/profile-service/profile-service-server/src/main/java/org/apache/airavata/service/profile/handlers/TenantProfileServiceHandler.java
@@ -20,8 +20,15 @@
 */
 package org.apache.airavata.service.profile.handlers;
 
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.Constants;
 import org.apache.airavata.common.utils.DBEventManagerConstants;
 import org.apache.airavata.common.utils.DBEventService;
+import org.apache.airavata.common.utils.ServerSettings;
+import org.apache.airavata.credential.store.client.CredentialStoreClientFactory;
+import org.apache.airavata.credential.store.cpi.CredentialStoreService;
+import org.apache.airavata.credential.store.exception.CredentialStoreException;
+import org.apache.airavata.model.credential.store.PasswordCredential;
 import org.apache.airavata.model.dbevent.CrudType;
 import org.apache.airavata.model.dbevent.EntityType;
 import org.apache.airavata.model.error.AuthorizationException;
@@ -76,6 +83,10 @@ public class TenantProfileServiceHandler implements TenantProfileService.Iface {
             // Assign UUID to gateway
             gateway.setAiravataInternalGatewayId(UUID.randomUUID().toString());
             if (!checkDuplicateGateway(gateway)) {
+                // If admin password, copy it in the credential store under the requested gateway's gatewayId
+                if (gateway.getIdentityServerPasswordToken() != null) {
+                    copyAdminPasswordToGateway(authzToken, gateway);
+                }
                 gateway = tenantProfileRepository.create(gateway);
                 if (gateway != null) {
                     logger.info("Added Airavata Gateway with Id: " + gateway.getGatewayId());
@@ -108,6 +119,15 @@ public class TenantProfileServiceHandler implements TenantProfileService.Iface {
     @SecurityCheck
     public boolean updateGateway(AuthzToken authzToken, Gateway updatedGateway) throws TenantProfileServiceException, AuthorizationException, TException {
         try {
+
+            // if admin password token changes then copy the admin password and store under this gateway id and then update the admin password token
+            Gateway existingGateway = tenantProfileRepository.getGateway(updatedGateway.getAiravataInternalGatewayId());
+            if (updatedGateway.getIdentityServerPasswordToken() != null
+                    && (existingGateway.getIdentityServerPasswordToken() == null
+                        || !existingGateway.getIdentityServerPasswordToken().equals(updatedGateway.getIdentityServerPasswordToken()))) {
+                copyAdminPasswordToGateway(authzToken, updatedGateway);
+            }
+
             if (tenantProfileRepository.update(updatedGateway) != null) {
                 logger.debug("Updated gateway-profile with ID: " + updatedGateway.getGatewayId());
                 // replicate tenant at end-places
@@ -223,4 +243,34 @@ public class TenantProfileServiceHandler implements TenantProfileService.Iface {
             throw exception;
         }
     }
+
+    // admin passwords are stored in credential store in the super portal gateway and need to be
+    // copied to a credential that is stored in the requested/newly created gateway
+    private void copyAdminPasswordToGateway(AuthzToken authzToken, Gateway gateway) throws TException, ApplicationSettingsException {
+        CredentialStoreService.Client csClient = getCredentialStoreServiceClient();
+        try {
+            String requestGatewayId = authzToken.getClaimsMap().get(Constants.GATEWAY_ID);
+            PasswordCredential adminPasswordCredential = csClient.getPasswordCredential(gateway.getIdentityServerPasswordToken(), requestGatewayId);
+            adminPasswordCredential.setGatewayId(gateway.getGatewayId());
+            String newAdminPasswordCredentialToken = csClient.addPasswordCredential(adminPasswordCredential);
+            gateway.setIdentityServerPasswordToken(newAdminPasswordCredentialToken);
+        } finally {
+            if (csClient.getInputProtocol().getTransport().isOpen()) {
+                csClient.getInputProtocol().getTransport().close();
+            }
+            if (csClient.getOutputProtocol().getTransport().isOpen()) {
+                csClient.getOutputProtocol().getTransport().close();
+            }
+        }
+    }
+
+    private CredentialStoreService.Client getCredentialStoreServiceClient() throws TException, ApplicationSettingsException {
+        final int serverPort = Integer.parseInt(ServerSettings.getCredentialStoreServerPort());
+        final String serverHost = ServerSettings.getCredentialStoreServerHost();
+        try {
+            return CredentialStoreClientFactory.createAiravataCSClient(serverHost, serverPort);
+        } catch (CredentialStoreException e) {
+            throw new TException("Unable to create credential store client...", e);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/52d92380/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2
----------------------------------------------------------------------
diff --git a/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2 b/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2
index ab0ee9f..a3bee29 100644
--- a/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2
+++ b/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2
@@ -325,7 +325,6 @@ profile.service.validationQuery=SELECT 1
 # Iam Admin services Configuration
 ###########################################################################
 iam.server.url={{ iam_server_url }}
-new.gateway.admin.temp.password=Password@123
 iam.server.super.admin.username={{ iam_server_super_admin_username }}
 iam.server.super.admin.password={{ iam_server_super_admin_password }}
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/52d92380/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
----------------------------------------------------------------------
diff --git a/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java b/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
index 30a0691..bbf5102 100644
--- a/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
+++ b/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
@@ -435,10 +435,6 @@ public class ApplicationSettings {
         return getSetting(ServerSettings.IAM_SERVER_URL);
     }
 
-    public static String getGatewayAdminTempPwd() throws ApplicationSettingsException {
-        return getSetting(ServerSettings.NEW_GATEWAY_ADMIN_TEMP_PASSWORD);
-    }
-
     /**
      * @deprecated use {{@link #getSetting(String)}}
      * @return

http://git-wip-us.apache.org/repos/asf/airavata/blob/52d92380/modules/commons/src/main/java/org/apache/airavata/common/utils/ServerSettings.java
----------------------------------------------------------------------
diff --git a/modules/commons/src/main/java/org/apache/airavata/common/utils/ServerSettings.java b/modules/commons/src/main/java/org/apache/airavata/common/utils/ServerSettings.java
index 8824eda..94cfe8f 100644
--- a/modules/commons/src/main/java/org/apache/airavata/common/utils/ServerSettings.java
+++ b/modules/commons/src/main/java/org/apache/airavata/common/utils/ServerSettings.java
@@ -132,7 +132,6 @@ public class ServerSettings extends ApplicationSettings {
 
     // Iam Server Constants
     public static final String IAM_SERVER_URL = "iam.server.url";
-    public static final String NEW_GATEWAY_ADMIN_TEMP_PASSWORD="new.gateway.admin.temp.password";
     public static final String IAM_SERVER_SUPER_ADMIN_USERNAME = "iam.server.super.admin.username";
     public static final String IAM_SERVER_SUPER_ADMIN_PASSWORD = "iam.server.super.admin.password";
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/52d92380/modules/configuration/server/src/main/resources/airavata-server.properties
----------------------------------------------------------------------
diff --git a/modules/configuration/server/src/main/resources/airavata-server.properties b/modules/configuration/server/src/main/resources/airavata-server.properties
index bf0bc6f..a0d0cd9 100644
--- a/modules/configuration/server/src/main/resources/airavata-server.properties
+++ b/modules/configuration/server/src/main/resources/airavata-server.properties
@@ -347,7 +347,6 @@ profile.service.jdbc.password=airavata
 # Iam Admin services Configuration
 ###########################################################################
 iam.server.url=https://iam.scigap.org/auth
-new.gateway.admin.temp.password=Password@123
 iam.server.super.admin.username=admin
 iam.server.super.admin.password=password
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/52d92380/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
index cd4368a..d90c20b 100644
--- a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
+++ b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
@@ -3532,6 +3532,14 @@ public class RegistryServerHandler implements RegistryService.Iface {
                 throw exception;
             }
             experimentCatalog.update(ExperimentCatalogModelType.GATEWAY, updatedGateway, gatewayId);
+
+            // check if gatewayprofile exists and check if the identity server password token equals the admin password token, if not update
+            GatewayResourceProfile existingGwyResourceProfile = appCatalog.getGatewayProfile().getGatewayProfile(gatewayId);
+            if (existingGwyResourceProfile.getIdentityServerPwdCredToken() == null
+                    || !existingGwyResourceProfile.getIdentityServerPwdCredToken().equals(updatedGateway.getIdentityServerPasswordToken())) {
+                existingGwyResourceProfile.setIdentityServerPwdCredToken(updatedGateway.getIdentityServerPasswordToken());
+                appCatalog.getGatewayProfile().updateGatewayResourceProfile(gatewayId, existingGwyResourceProfile);
+            }
             logger.debug("Airavata update gateway with gateway id : " + gatewayId);
             return true;
         } catch (RegistryException e) {
@@ -3539,6 +3547,11 @@ public class RegistryServerHandler implements RegistryService.Iface {
             RegistryServiceException exception = new RegistryServiceException();
             exception.setMessage("Error while updating the gateway. More info : " + e.getMessage());
             throw exception;
+        } catch (AppCatalogException e) {
+            logger.error("Error while updating gateway profile", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while updating gateway profile. More info : " + e.getMessage());
+            throw exception;
         }
     }
 
@@ -3573,6 +3586,8 @@ public class RegistryServerHandler implements RegistryService.Iface {
             // add gatewayresourceprofile in appCatalog
             GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
             gatewayResourceProfile.setGatewayID(gatewayId);
+            gatewayResourceProfile.setIdentityServerTenant(gatewayId);
+            gatewayResourceProfile.setIdentityServerPwdCredToken(gateway.getIdentityServerPasswordToken());
             appCatalog.getGatewayProfile().addGatewayResourceProfile(gatewayResourceProfile);
             logger.debug("Airavata added gateway with gateway id : " + gateway.getGatewayId());
             return gatewayId;


[2/2] airavata git commit: Merge branch 'AIRAVATA-2508' into develop

Posted by ma...@apache.org.
Merge branch 'AIRAVATA-2508' into develop


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

Branch: refs/heads/develop
Commit: a27a82964094111b4e93bf5a9ed90ebfc76b61f7
Parents: 430001c 52d9238
Author: Marcus Christie <ma...@apache.org>
Authored: Thu Sep 28 17:16:47 2017 -0400
Committer: Marcus Christie <ma...@apache.org>
Committed: Thu Sep 28 17:16:47 2017 -0400

----------------------------------------------------------------------
 .../core/impl/TenantManagementKeycloakImpl.java | 11 ++---
 .../interfaces/TenantManagementInterface.java   |  3 +-
 .../services/core/tests/SetupNewGateway.java    |  2 +-
 .../handlers/IamAdminServicesHandler.java       | 13 +++--
 .../handlers/TenantProfileServiceHandler.java   | 50 ++++++++++++++++++++
 .../templates/airavata-server.properties.j2     |  1 -
 .../common/utils/ApplicationSettings.java       |  4 --
 .../airavata/common/utils/ServerSettings.java   |  1 -
 .../main/resources/airavata-server.properties   |  1 -
 .../service/handler/RegistryServerHandler.java  | 15 ++++++
 10 files changed, 81 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/a27a8296/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/impl/TenantManagementKeycloakImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/airavata/blob/a27a8296/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/airavata/blob/a27a8296/modules/commons/src/main/java/org/apache/airavata/common/utils/ServerSettings.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/airavata/blob/a27a8296/modules/configuration/server/src/main/resources/airavata-server.properties
----------------------------------------------------------------------