Repository: ambari Updated Branches: refs/heads/trunk 3b8111f3a -> 2c08fa6b6
AMBARI-17029. Cluster operator and ServiceAdministrator not allowed to create config group (rlevas) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/2c08fa6b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/2c08fa6b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/2c08fa6b Branch: refs/heads/trunk Commit: 2c08fa6b6db6fe18238311461ab928f7e8f23934 Parents: 3b8111f Author: Robert Levas <[email protected]> Authored: Sat Jun 4 06:43:41 2016 -0400 Committer: Robert Levas <[email protected]> Committed: Sat Jun 4 06:43:49 2016 -0400 ---------------------------------------------------------------------- ...usterKerberosDescriptorResourceProvider.java | 5 +- .../AmbariAuthorizationFilter.java | 2 + ...rKerberosDescriptorResourceProviderTest.java | 53 +++++- .../ConfigGroupResourceProviderTest.java | 184 +++++++++++++++++-- .../security/TestAuthenticationFactory.java | 2 + .../AmbariAuthorizationFilterTest.java | 20 ++ 6 files changed, 250 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/2c08fa6b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProvider.java index 6fe29db..1f5d1d8 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProvider.java @@ -77,7 +77,10 @@ public class ClusterKerberosDescriptorResourceProvider extends ReadOnlyResourceP private static final Set<String> PROPERTY_IDS; private static final Map<Type, String> KEY_PROPERTY_IDS; - private static final Set<RoleAuthorization> REQUIRED_GET_AUTHORIZATIONS = EnumSet.of(RoleAuthorization.CLUSTER_TOGGLE_KERBEROS); + private static final Set<RoleAuthorization> REQUIRED_GET_AUTHORIZATIONS = EnumSet.of(RoleAuthorization.CLUSTER_TOGGLE_KERBEROS, + RoleAuthorization.CLUSTER_VIEW_CONFIGS, + RoleAuthorization.HOST_VIEW_CONFIGS, + RoleAuthorization.SERVICE_VIEW_CONFIGS); static { Set<String> set; http://git-wip-us.apache.org/repos/asf/ambari/blob/2c08fa6b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java index 2b9f304..922a215 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java @@ -80,6 +80,7 @@ public class AmbariAuthorizationFilter implements Filter { private static final String API_CLUSTER_HOSTS_ALL_PATTERN = API_VERSION_PREFIX + "/clusters/.*?/hosts.*"; private static final String API_CLUSTER_CONFIGURATIONS_ALL_PATTERN = API_VERSION_PREFIX + "/clusters/.*?/configurations.*"; private static final String API_CLUSTER_HOST_COMPONENTS_ALL_PATTERN = API_VERSION_PREFIX + "/clusters/.*?/host_components.*"; + private static final String API_CLUSTER_CONFIG_GROUPS_ALL_PATTERN = API_VERSION_PREFIX + "/clusters/.*?/config_groups.*"; private static final String API_STACK_VERSIONS_PATTERN = API_VERSION_PREFIX + "/stacks/.*?/versions/.*"; private static final String API_HOSTS_ALL_PATTERN = API_VERSION_PREFIX + "/hosts.*"; private static final String API_ALERT_TARGETS_ALL_PATTERN = API_VERSION_PREFIX + "/alert_targets.*"; @@ -310,6 +311,7 @@ public class AmbariAuthorizationFilter implements Filter { requestURI.matches(API_CLUSTER_HOSTS_ALL_PATTERN) || requestURI.matches(API_CLUSTER_CONFIGURATIONS_ALL_PATTERN) || requestURI.matches(API_CLUSTER_HOST_COMPONENTS_ALL_PATTERN) || + requestURI.matches(API_CLUSTER_CONFIG_GROUPS_ALL_PATTERN) || requestURI.matches(API_HOSTS_ALL_PATTERN) || requestURI.matches(API_ALERT_TARGETS_ALL_PATTERN) || requestURI.matches(API_PRIVILEGES_ALL_PATTERN) || http://git-wip-us.apache.org/repos/asf/ambari/blob/2c08fa6b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProviderTest.java index d56ed44..898cf46 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProviderTest.java @@ -255,11 +255,26 @@ public class ClusterKerberosDescriptorResourceProviderTest extends EasyMockSuppo testGetResources(TestAuthenticationFactory.createClusterAdministrator()); } - @Test(expected = AuthorizationException.class) + @Test + public void testGetResourcesAsClusterOperator() throws Exception { + testGetResources(TestAuthenticationFactory.createClusterOperator()); + } + + @Test public void testGetResourcesAsServiceAdministrator() throws Exception { testGetResources(TestAuthenticationFactory.createServiceAdministrator()); } + @Test + public void testGetResourcesAsServiceOperator() throws Exception { + testGetResources(TestAuthenticationFactory.createServiceOperator()); + } + + @Test + public void testGetResourcesAsClusterUser() throws Exception { + testGetResources(TestAuthenticationFactory.createClusterUser()); + } + private void testGetResources(Authentication authentication) throws Exception { Cluster cluster = createMock(Cluster.class); @@ -304,11 +319,26 @@ public class ClusterKerberosDescriptorResourceProviderTest extends EasyMockSuppo testGetResourcesWithPredicate(TestAuthenticationFactory.createClusterAdministrator()); } - @Test(expected = AuthorizationException.class) + @Test + public void testGetResourcesWithPredicateAsClusterOperator() throws Exception { + testGetResourcesWithPredicate(TestAuthenticationFactory.createClusterOperator()); + } + + @Test public void testGetResourcesWithPredicateAsServiceAdministrator() throws Exception { testGetResourcesWithPredicate(TestAuthenticationFactory.createServiceAdministrator()); } + @Test + public void testGetResourcesWithPredicateAsServiceOperator() throws Exception { + testGetResourcesWithPredicate(TestAuthenticationFactory.createServiceOperator()); + } + + @Test + public void testGetResourcesWithPredicateAsClusterUser() throws Exception { + testGetResourcesWithPredicate(TestAuthenticationFactory.createClusterUser()); + } + private void testGetResourcesWithPredicate(Authentication authentication) throws Exception { StackId stackVersion = createMock(StackId.class); @@ -445,7 +475,7 @@ public class ClusterKerberosDescriptorResourceProviderTest extends EasyMockSuppo testGetResourcesWithInvalidKerberosDescriptorType(TestAuthenticationFactory.createClusterAdministrator()); } - @Test(expected = AuthorizationException.class) + @Test(expected = IllegalArgumentException.class) public void testGetResourcesWithInvalidKerberosDescriptorTypeAsServiceAdministrator() throws Exception { testGetResourcesWithInvalidKerberosDescriptorType(TestAuthenticationFactory.createServiceAdministrator()); } @@ -514,11 +544,26 @@ public class ClusterKerberosDescriptorResourceProviderTest extends EasyMockSuppo testGetResourcesWithoutPredicate(TestAuthenticationFactory.createClusterAdministrator()); } - @Test(expected = AuthorizationException.class) + @Test + public void testGetResourcesWithoutPredicateAsClusterOperator() throws Exception { + testGetResourcesWithoutPredicate(TestAuthenticationFactory.createClusterOperator()); + } + + @Test public void testGetResourcesWithoutPredicateAsServiceAdministrator() throws Exception { testGetResourcesWithoutPredicate(TestAuthenticationFactory.createServiceAdministrator()); } + @Test + public void testGetResourcesWithoutPredicateAsServiceOperator() throws Exception { + testGetResourcesWithoutPredicate(TestAuthenticationFactory.createServiceOperator()); + } + + @Test + public void testGetResourcesWithoutPredicateAsClusterUser() throws Exception { + testGetResourcesWithoutPredicate(TestAuthenticationFactory.createClusterUser()); + } + private void testGetResourcesWithoutPredicate(Authentication authentication) throws Exception { Clusters clusters = createMock(Clusters.class); http://git-wip-us.apache.org/repos/asf/ambari/blob/2c08fa6b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java index 2913cf5..a5c71c4 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java @@ -39,6 +39,7 @@ import org.apache.ambari.server.orm.InMemoryDefaultTestModule; import org.apache.ambari.server.orm.dao.HostDAO; import org.apache.ambari.server.orm.entities.HostEntity; import org.apache.ambari.server.security.TestAuthenticationFactory; +import org.apache.ambari.server.security.authorization.AuthorizationException; import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.state.Clusters; import org.apache.ambari.server.state.Config; @@ -52,6 +53,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; +import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; @@ -65,9 +67,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertNotNull; -import static junit.framework.Assert.assertTrue; +import static junit.framework.Assert.*; import static org.easymock.EasyMock.anyObject; import static org.easymock.EasyMock.capture; import static org.easymock.EasyMock.createMock; @@ -86,8 +86,8 @@ public class ConfigGroupResourceProviderTest { @BeforeClass public static void setupAuthentication() { - // Set authenticated user so that authorization checks will pass - SecurityContextHolder.getContext().setAuthentication(TestAuthenticationFactory.createAdministrator()); + // Clear authenticated user so that authorization checks will pass + SecurityContextHolder.getContext().setAuthentication(null); } @Before @@ -119,7 +119,36 @@ public class ConfigGroupResourceProviderTest { } @Test - public void testCreateConfigGroup() throws Exception { + public void testCreateConfigGroupAsAmbariAdministrator() throws Exception { + testCreateConfigGroup(TestAuthenticationFactory.createAdministrator()); + } + + @Test + public void testCreateConfigGroupAsClusterAdministrator() throws Exception { + testCreateConfigGroup(TestAuthenticationFactory.createClusterAdministrator()); + } + + @Test + public void testCreateConfigGroupAsClusterOperator() throws Exception { + testCreateConfigGroup(TestAuthenticationFactory.createClusterOperator()); + } + + @Test + public void testCreateConfigGroupAsServiceAdministrator() throws Exception { + testCreateConfigGroup(TestAuthenticationFactory.createServiceAdministrator()); + } + + @Test(expected = AuthorizationException.class) + public void testCreateConfigGroupAsServiceOperator() throws Exception { + testCreateConfigGroup(TestAuthenticationFactory.createServiceOperator()); + } + + @Test(expected = AuthorizationException.class) + public void testCreateConfigGroupAsClusterUser() throws Exception { + testCreateConfigGroup(TestAuthenticationFactory.createClusterUser()); + } + + private void testCreateConfigGroup(Authentication authentication) throws Exception { AmbariManagementController managementController = createMock(AmbariManagementController.class); RequestStatusResponse response = createNiceMock(RequestStatusResponse.class); Clusters clusters = createNiceMock(Clusters.class); @@ -195,6 +224,8 @@ public class ConfigGroupResourceProviderTest { Request request = PropertyHelper.getCreateRequest(propertySet, null); + SecurityContextHolder.getContext().setAuthentication(authentication); + provider.createResources(request); verify(managementController, clusters, cluster, configGroupFactory, @@ -207,7 +238,36 @@ public class ConfigGroupResourceProviderTest { } @Test - public void testDuplicateNameConfigGroup() throws Exception { + public void testDuplicateNameConfigGroupAsAmbariAdministrator() throws Exception { + testDuplicateNameConfigGroup(TestAuthenticationFactory.createAdministrator()); + } + + @Test + public void testDuplicateNameConfigGroupAsClusterAdministrator() throws Exception { + testDuplicateNameConfigGroup(TestAuthenticationFactory.createClusterAdministrator()); + } + + @Test + public void testDuplicateNameConfigGroupAsClusterOperator() throws Exception { + testDuplicateNameConfigGroup(TestAuthenticationFactory.createClusterOperator()); + } + + @Test + public void testDuplicateNameConfigGroupAsServiceAdministrator() throws Exception { + testDuplicateNameConfigGroup(TestAuthenticationFactory.createServiceAdministrator()); + } + + @Test(expected = AuthorizationException.class) + public void testDuplicateNameConfigGroupAsServiceOperator() throws Exception { + testDuplicateNameConfigGroup(TestAuthenticationFactory.createServiceOperator()); + } + + @Test(expected = AuthorizationException.class) + public void testDuplicateNameConfigGroupAsClusterUser() throws Exception { + testDuplicateNameConfigGroup(TestAuthenticationFactory.createClusterUser()); + } + + private void testDuplicateNameConfigGroup(Authentication authentication) throws Exception { AmbariManagementController managementController = createMock(AmbariManagementController.class); RequestStatusResponse response = createNiceMock(RequestStatusResponse.class); Clusters clusters = createNiceMock(Clusters.class); @@ -251,9 +311,13 @@ public class ConfigGroupResourceProviderTest { propertySet.add(properties); Request request = PropertyHelper.getCreateRequest(propertySet, null); + SecurityContextHolder.getContext().setAuthentication(authentication); + Exception exception = null; try { provider.createResources(request); + } catch (AuthorizationException e){ + throw e; } catch (Exception e) { exception = e; } @@ -264,6 +328,7 @@ public class ConfigGroupResourceProviderTest { assertNotNull(exception); assertTrue(exception instanceof ResourceAlreadyExistsException); } + @Test public void testUpdateConfigGroupWithWrongConfigType() throws Exception { AmbariManagementController managementController = createMock(AmbariManagementController.class); @@ -358,6 +423,9 @@ public class ConfigGroupResourceProviderTest { ("Cluster100").and(). property(ConfigGroupResourceProvider.CONFIGGROUP_ID_PROPERTY_ID).equals (25L).toPredicate(); + + SecurityContextHolder.getContext().setAuthentication(TestAuthenticationFactory.createAdministrator()); + SystemException systemException = null; try { provider.updateResources(request, predicate); @@ -369,8 +437,38 @@ public class ConfigGroupResourceProviderTest { verify(managementController, clusters, cluster, configGroup, response, configGroupResponse, configHelper, hostDAO, hostEntity1, hostEntity2, h1, h2); } + + @Test + public void testUpdateConfigGroupAsAmbariAdministrator() throws Exception { + testUpdateConfigGroup(TestAuthenticationFactory.createAdministrator()); + } + + @Test + public void testUpdateConfigGroupAsClusterAdministrator() throws Exception { + testUpdateConfigGroup(TestAuthenticationFactory.createClusterAdministrator()); + } + + @Test + public void testUpdateConfigGroupAsClusterOperator() throws Exception { + testUpdateConfigGroup(TestAuthenticationFactory.createClusterOperator()); + } + @Test - public void testUpdateConfigGroup() throws Exception { + public void testUpdateConfigGroupAsServiceAdministrator() throws Exception { + testUpdateConfigGroup(TestAuthenticationFactory.createServiceAdministrator()); + } + + @Test(expected = AuthorizationException.class) + public void testUpdateConfigGroupAsServiceOperator() throws Exception { + testUpdateConfigGroup(TestAuthenticationFactory.createServiceOperator()); + } + + @Test(expected = AuthorizationException.class) + public void testUpdateConfigGroupAsClusterUser() throws Exception { + testUpdateConfigGroup(TestAuthenticationFactory.createClusterUser()); + } + + private void testUpdateConfigGroup(Authentication authentication) throws Exception { AmbariManagementController managementController = createMock(AmbariManagementController.class); RequestStatusResponse response = createNiceMock(RequestStatusResponse.class); ConfigHelper configHelper = createNiceMock(ConfigHelper.class); @@ -467,15 +565,46 @@ public class ConfigGroupResourceProviderTest { property(ConfigGroupResourceProvider.CONFIGGROUP_ID_PROPERTY_ID).equals (25L).toPredicate(); + SecurityContextHolder.getContext().setAuthentication(authentication); + provider.updateResources(request, predicate); verify(managementController, clusters, cluster, configGroup, response, configGroupResponse, configHelper, hostDAO, hostEntity1, hostEntity2, h1, h2); } - @SuppressWarnings("unchecked") @Test - public void testGetConfigGroup() throws Exception { + public void testGetConfigGroupAsAmbariAdministrator() throws Exception { + testGetConfigGroup(TestAuthenticationFactory.createAdministrator()); + } + + @Test + public void testGetConfigGroupAsClusterAdministrator() throws Exception { + testGetConfigGroup(TestAuthenticationFactory.createClusterAdministrator()); + } + + @Test + public void testGetConfigGroupAsClusterOperator() throws Exception { + testGetConfigGroup(TestAuthenticationFactory.createClusterOperator()); + } + + @Test + public void testGetConfigGroupAsServiceAdministrator() throws Exception { + testGetConfigGroup(TestAuthenticationFactory.createServiceAdministrator()); + } + + @Test + public void testGetConfigGroupAsServiceOperator() throws Exception { + testGetConfigGroup(TestAuthenticationFactory.createServiceOperator()); + } + + @Test + public void testGetConfigGroupAsClusterUser() throws Exception { + testGetConfigGroup(TestAuthenticationFactory.createClusterUser()); + } + + @SuppressWarnings("unchecked") + private void testGetConfigGroup(Authentication authentication) throws Exception { AmbariManagementController managementController = createMock(AmbariManagementController.class); Clusters clusters = createNiceMock(Clusters.class); Cluster cluster = createNiceMock(Cluster.class); @@ -577,6 +706,8 @@ public class ConfigGroupResourceProviderTest { (ConfigGroupResourceProvider.CONFIGGROUP_CLUSTER_NAME_PROPERTY_ID) .equals("Cluster100").toPredicate(); + SecurityContextHolder.getContext().setAuthentication(authentication); + resources = resourceProvider.getResources(request, predicate); assertEquals(1, resources.size()); @@ -693,7 +824,36 @@ public class ConfigGroupResourceProviderTest { } @Test - public void testDeleteConfigGroup() throws Exception { + public void testDeleteConfigGroupAsAmbariAdministrator() throws Exception { + testDeleteConfigGroup(TestAuthenticationFactory.createAdministrator()); + } + + @Test + public void testDeleteConfigGroupAsClusterAdministrator() throws Exception { + testDeleteConfigGroup(TestAuthenticationFactory.createClusterAdministrator()); + } + + @Test + public void testDeleteConfigGroupAsClusterOperator() throws Exception { + testDeleteConfigGroup(TestAuthenticationFactory.createClusterOperator()); + } + + @Test + public void testDeleteConfigGroupAsServiceAdministrator() throws Exception { + testDeleteConfigGroup(TestAuthenticationFactory.createServiceAdministrator()); + } + + @Test(expected = AuthorizationException.class) + public void testDeleteConfigGroupAsServiceOperator() throws Exception { + testDeleteConfigGroup(TestAuthenticationFactory.createServiceOperator()); + } + + @Test(expected = AuthorizationException.class) + public void testDeleteConfigGroupAsClusterUser() throws Exception { + testDeleteConfigGroup(TestAuthenticationFactory.createClusterUser()); + } + + private void testDeleteConfigGroup(Authentication authentication) throws Exception { AmbariManagementController managementController = createMock(AmbariManagementController.class); Clusters clusters = createNiceMock(Clusters.class); Cluster cluster = createNiceMock(Cluster.class); @@ -720,6 +880,8 @@ public class ConfigGroupResourceProviderTest { .equals("Cluster100").and().property(ConfigGroupResourceProvider .CONFIGGROUP_ID_PROPERTY_ID).equals(1L).toPredicate(); + SecurityContextHolder.getContext().setAuthentication(authentication); + resourceProvider.deleteResources(new RequestImpl(null, null, null, null), predicate); ResourceProviderEvent lastEvent = observer.getLastEvent(); http://git-wip-us.apache.org/repos/asf/ambari/blob/2c08fa6b/ambari-server/src/test/java/org/apache/ambari/server/security/TestAuthenticationFactory.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/TestAuthenticationFactory.java b/ambari-server/src/test/java/org/apache/ambari/server/security/TestAuthenticationFactory.java index 4301bf8..80ec449 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/security/TestAuthenticationFactory.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/security/TestAuthenticationFactory.java @@ -184,6 +184,7 @@ public class TestAuthenticationFactory { permissionEntity.setAuthorizations(createAuthorizations(EnumSet.of( RoleAuthorization.CLUSTER_MANAGE_CREDENTIALS, RoleAuthorization.CLUSTER_MODIFY_CONFIGS, + RoleAuthorization.CLUSTER_MANAGE_CONFIG_GROUPS, RoleAuthorization.CLUSTER_TOGGLE_ALERTS, RoleAuthorization.CLUSTER_MANAGE_ALERTS, RoleAuthorization.CLUSTER_TOGGLE_KERBEROS, @@ -267,6 +268,7 @@ public class TestAuthenticationFactory { RoleAuthorization.CLUSTER_VIEW_METRICS, RoleAuthorization.CLUSTER_VIEW_STACK_DETAILS, RoleAuthorization.CLUSTER_VIEW_STATUS_INFO, + RoleAuthorization.CLUSTER_MANAGE_CONFIG_GROUPS, RoleAuthorization.HOST_VIEW_CONFIGS, RoleAuthorization.HOST_VIEW_METRICS, RoleAuthorization.HOST_VIEW_STATUS_INFO, http://git-wip-us.apache.org/repos/asf/ambari/blob/2c08fa6b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilterTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilterTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilterTest.java index 96b2cfb..1d71fe6 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilterTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilterTest.java @@ -79,6 +79,10 @@ public class AmbariAuthorizationFilterTest { urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "PUT", true); urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "GET", true); urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "DELETE", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "GET", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "PUT", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "POST", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "DELETE", true); urlTests.put("/api/v1/clusters/c1/configurations", "GET", true); urlTests.put("/api/v1/clusters/c1/configurations", "PUT", true); urlTests.put("/api/v1/clusters/c1/configurations", "POST", true); @@ -116,6 +120,10 @@ public class AmbariAuthorizationFilterTest { urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "PUT", true); urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "GET", true); urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "DELETE", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "GET", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "PUT", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "POST", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "DELETE", true); urlTests.put("/api/v1/clusters/c1/configurations", "GET", true); urlTests.put("/api/v1/clusters/c1/configurations", "PUT", true); urlTests.put("/api/v1/clusters/c1/configurations", "POST", true); @@ -153,6 +161,10 @@ public class AmbariAuthorizationFilterTest { urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "PUT", true); urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "GET", true); urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "DELETE", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "GET", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "PUT", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "POST", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "DELETE", true); urlTests.put("/api/v1/clusters/c1/configurations", "GET", true); urlTests.put("/api/v1/clusters/c1/configurations", "PUT", true); urlTests.put("/api/v1/clusters/c1/configurations", "POST", true); @@ -190,6 +202,10 @@ public class AmbariAuthorizationFilterTest { urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "PUT", true); urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "GET", true); urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "DELETE", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "GET", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "PUT", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "POST", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "DELETE", true); urlTests.put("/api/v1/clusters/c1/configurations", "GET", true); urlTests.put("/api/v1/clusters/c1/configurations", "PUT", true); urlTests.put("/api/v1/clusters/c1/configurations", "POST", true); @@ -227,6 +243,10 @@ public class AmbariAuthorizationFilterTest { urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "PUT", true); urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "GET", true); urlTests.put("/api/v1/clusters/c1/credentials/cluster.credential", "DELETE", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "GET", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "PUT", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "POST", true); + urlTests.put("/api/v1/clusters/c1/config_groups", "DELETE", true); urlTests.put("/api/v1/clusters/c1/configurations", "GET", true); urlTests.put("/api/v1/clusters/c1/configurations", "PUT", true); urlTests.put("/api/v1/clusters/c1/configurations", "POST", true);
