You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by sa...@apache.org on 2018/01/11 21:27:20 UTC
[geode] branch develop updated: GEODE-3974: Improve permissions for
geode-connectors functions (#1265)
This is an automated email from the ASF dual-hosted git repository.
sai_boorlagadda pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 49d28f9 GEODE-3974: Improve permissions for geode-connectors functions (#1265)
49d28f9 is described below
commit 49d28f93fd2ef069693ce15d124ef3a29f22fb7d
Author: Sai Boorlagadda <sa...@gmail.com>
AuthorDate: Thu Jan 11 13:27:18 2018 -0800
GEODE-3974: Improve permissions for geode-connectors functions (#1265)
---
.../jdbc/internal/cli/AlterConnectionFunction.java | 9 ++
.../jdbc/internal/cli/AlterMappingFunction.java | 9 ++
.../internal/cli/CreateConnectionFunction.java | 10 ++
.../jdbc/internal/cli/CreateMappingFunction.java | 10 ++
.../internal/cli/DescribeConnectionFunction.java | 10 ++
.../jdbc/internal/cli/DescribeMappingFunction.java | 10 ++
.../internal/cli/DestroyConnectionFunction.java | 10 ++
.../jdbc/internal/cli/DestroyMappingFunction.java | 10 ++
.../jdbc/internal/cli/JdbcCliFunction.java | 10 ++
.../jdbc/internal/cli/ListConnectionFunction.java | 9 ++
.../jdbc/internal/cli/ListMappingFunction.java | 9 ++
.../cli/JDBCConnectorFunctionsSecurityTest.java | 150 +++++++++++++++++++++
12 files changed, 256 insertions(+)
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunction.java
index 7ac8240..68a3cb7 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunction.java
@@ -14,6 +14,8 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
+import java.util.Collection;
+import java.util.Collections;
import java.util.Map;
import org.apache.geode.annotations.Experimental;
@@ -23,6 +25,8 @@ import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
+import org.apache.geode.management.internal.security.ResourcePermissions;
+import org.apache.geode.security.ResourcePermission;
@Experimental
public class AlterConnectionFunction
@@ -86,4 +90,9 @@ public class AlterConnectionFunction
String message = "Altered JDBC connection " + connectionName + " on " + member;
return new CliFunctionResult(member, xmlEntity, message);
}
+
+ @Override
+ public Collection<ResourcePermission> getRequiredPermissions(String regionName) {
+ return Collections.singletonList(ResourcePermissions.CLUSTER_MANAGE);
+ }
}
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunction.java
index f7f0045..9d44c46 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunction.java
@@ -14,6 +14,8 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
+import java.util.Collection;
+import java.util.Collections;
import java.util.Map;
import org.apache.geode.annotations.Experimental;
@@ -23,6 +25,8 @@ import org.apache.geode.connectors.jdbc.internal.RegionMapping;
import org.apache.geode.connectors.jdbc.internal.RegionMappingNotFoundException;
import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
+import org.apache.geode.management.internal.security.ResourcePermissions;
+import org.apache.geode.security.ResourcePermission;
@Experimental
public class AlterMappingFunction extends JdbcCliFunction<RegionMapping, CliFunctionResult> {
@@ -84,4 +88,9 @@ public class AlterMappingFunction extends JdbcCliFunction<RegionMapping, CliFunc
String message = "Altered JDBC connection " + connectionName + " on " + member;
return new CliFunctionResult(member, xmlEntity, message);
}
+
+ @Override
+ public Collection<ResourcePermission> getRequiredPermissions(String regionName) {
+ return Collections.singletonList(ResourcePermissions.CLUSTER_MANAGE);
+ }
}
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunction.java
index 55b4358..65c5301 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunction.java
@@ -14,6 +14,9 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
+import java.util.Collection;
+import java.util.Collections;
+
import org.apache.geode.annotations.Experimental;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfigExistsException;
@@ -21,6 +24,8 @@ import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
+import org.apache.geode.management.internal.security.ResourcePermissions;
+import org.apache.geode.security.ResourcePermission;
@Experimental
public class CreateConnectionFunction
@@ -53,4 +58,9 @@ public class CreateConnectionFunction
String message = "Created JDBC connection " + connectionName + " on " + member;
return new CliFunctionResult(member, xmlEntity, message);
}
+
+ @Override
+ public Collection<ResourcePermission> getRequiredPermissions(String regionName) {
+ return Collections.singletonList(ResourcePermissions.CLUSTER_MANAGE);
+ }
}
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunction.java
index a7fb1a5..2b5f046 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunction.java
@@ -14,6 +14,9 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
+import java.util.Collection;
+import java.util.Collections;
+
import org.apache.geode.annotations.Experimental;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
@@ -21,6 +24,8 @@ import org.apache.geode.connectors.jdbc.internal.RegionMapping;
import org.apache.geode.connectors.jdbc.internal.RegionMappingExistsException;
import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
+import org.apache.geode.management.internal.security.ResourcePermissions;
+import org.apache.geode.security.ResourcePermission;
@Experimental
public class CreateMappingFunction extends JdbcCliFunction<RegionMapping, CliFunctionResult> {
@@ -57,4 +62,9 @@ public class CreateMappingFunction extends JdbcCliFunction<RegionMapping, CliFun
String message = "Created JDBC mapping for region " + regionName + " on " + member;
return new CliFunctionResult(member, xmlEntity, message);
}
+
+ @Override
+ public Collection<ResourcePermission> getRequiredPermissions(String regionName) {
+ return Collections.singletonList(ResourcePermissions.CLUSTER_MANAGE);
+ }
}
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunction.java
index 73c1cb8..9f3feca 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunction.java
@@ -14,10 +14,15 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
+import java.util.Collection;
+import java.util.Collections;
+
import org.apache.geode.annotations.Experimental;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
+import org.apache.geode.management.internal.security.ResourcePermissions;
+import org.apache.geode.security.ResourcePermission;
@Experimental
public class DescribeConnectionFunction extends JdbcCliFunction<String, ConnectionConfiguration> {
@@ -31,4 +36,9 @@ public class DescribeConnectionFunction extends JdbcCliFunction<String, Connecti
FunctionContext<String> context) {
return service.getConnectionConfig(context.getArguments());
}
+
+ @Override
+ public Collection<ResourcePermission> getRequiredPermissions(String regionName) {
+ return Collections.singletonList(ResourcePermissions.CLUSTER_READ);
+ }
}
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingFunction.java
index 49c56a3..d8b54a0 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingFunction.java
@@ -14,10 +14,15 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
+import java.util.Collection;
+import java.util.Collections;
+
import org.apache.geode.annotations.Experimental;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
import org.apache.geode.connectors.jdbc.internal.RegionMapping;
+import org.apache.geode.management.internal.security.ResourcePermissions;
+import org.apache.geode.security.ResourcePermission;
@Experimental
public class DescribeMappingFunction extends JdbcCliFunction<String, RegionMapping> {
@@ -30,4 +35,9 @@ public class DescribeMappingFunction extends JdbcCliFunction<String, RegionMappi
RegionMapping getFunctionResult(JdbcConnectorService service, FunctionContext<String> context) {
return service.getMappingForRegion(context.getArguments());
}
+
+ @Override
+ public Collection<ResourcePermission> getRequiredPermissions(String regionName) {
+ return Collections.singletonList(ResourcePermissions.CLUSTER_READ);
+ }
}
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunction.java
index e69710d..de81353 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunction.java
@@ -14,12 +14,17 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
+import java.util.Collection;
+import java.util.Collections;
+
import org.apache.geode.annotations.Experimental;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
+import org.apache.geode.management.internal.security.ResourcePermissions;
+import org.apache.geode.security.ResourcePermission;
@Experimental
public class DestroyConnectionFunction extends JdbcCliFunction<String, CliFunctionResult> {
@@ -76,4 +81,9 @@ public class DestroyConnectionFunction extends JdbcCliFunction<String, CliFuncti
String message = "Connection named \"" + connectionName + "\" not found";
return new CliFunctionResult(member, false, message);
}
+
+ @Override
+ public Collection<ResourcePermission> getRequiredPermissions(String regionName) {
+ return Collections.singletonList(ResourcePermissions.CLUSTER_MANAGE);
+ }
}
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingFunction.java
index 643aea6..9f739ed 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingFunction.java
@@ -14,12 +14,17 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
+import java.util.Collection;
+import java.util.Collections;
+
import org.apache.geode.annotations.Experimental;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
import org.apache.geode.connectors.jdbc.internal.RegionMapping;
import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
+import org.apache.geode.management.internal.security.ResourcePermissions;
+import org.apache.geode.security.ResourcePermission;
@Experimental
public class DestroyMappingFunction extends JdbcCliFunction<String, CliFunctionResult> {
@@ -76,4 +81,9 @@ public class DestroyMappingFunction extends JdbcCliFunction<String, CliFunctionR
String message = "Region mapping for region \"" + regionName + "\" not found";
return new CliFunctionResult(member, false, message);
}
+
+ @Override
+ public Collection<ResourcePermission> getRequiredPermissions(String regionName) {
+ return Collections.singletonList(ResourcePermissions.CLUSTER_MANAGE);
+ }
}
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcCliFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcCliFunction.java
index 3cc583d..fc39da0 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcCliFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcCliFunction.java
@@ -14,12 +14,17 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
+import java.util.Collection;
+import java.util.Collections;
+
import org.apache.geode.annotations.Experimental;
import org.apache.geode.cache.execute.Function;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
import org.apache.geode.internal.InternalEntity;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
+import org.apache.geode.management.internal.security.ResourcePermissions;
+import org.apache.geode.security.ResourcePermission;
@Experimental
public abstract class JdbcCliFunction<T1, T2> implements Function<T1>, InternalEntity {
@@ -54,6 +59,11 @@ public abstract class JdbcCliFunction<T1, T2> implements Function<T1>, InternalE
}
}
+ @Override
+ public Collection<ResourcePermission> getRequiredPermissions(String regionName) {
+ return Collections.singletonList(ResourcePermissions.CLUSTER_READ);
+ }
+
String getMember(FunctionContext<T1> context) {
return argumentProvider.getMember(context);
}
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunction.java
index 58866a6..23926bc 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunction.java
@@ -14,12 +14,16 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
+import java.util.Collection;
+import java.util.Collections;
import java.util.Set;
import org.apache.geode.annotations.Experimental;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
+import org.apache.geode.management.internal.security.ResourcePermissions;
+import org.apache.geode.security.ResourcePermission;
@Experimental
public class ListConnectionFunction extends JdbcCliFunction<Void, ConnectionConfiguration[]> {
@@ -42,4 +46,9 @@ public class ListConnectionFunction extends JdbcCliFunction<Void, ConnectionConf
private Set<ConnectionConfiguration> getConnectionConfigs(JdbcConnectorService service) {
return service.getConnectionConfigs();
}
+
+ @Override
+ public Collection<ResourcePermission> getRequiredPermissions(String regionName) {
+ return Collections.singletonList(ResourcePermissions.CLUSTER_READ);
+ }
}
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingFunction.java
index 7b472e1..15497a0 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingFunction.java
@@ -14,12 +14,16 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
+import java.util.Collection;
+import java.util.Collections;
import java.util.Set;
import org.apache.geode.annotations.Experimental;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
import org.apache.geode.connectors.jdbc.internal.RegionMapping;
+import org.apache.geode.management.internal.security.ResourcePermissions;
+import org.apache.geode.security.ResourcePermission;
@Experimental
public class ListMappingFunction extends JdbcCliFunction<Void, RegionMapping[]> {
@@ -41,4 +45,9 @@ public class ListMappingFunction extends JdbcCliFunction<Void, RegionMapping[]>
private Set<RegionMapping> getRegionMappings(JdbcConnectorService service) {
return service.getRegionMappings();
}
+
+ @Override
+ public Collection<ResourcePermission> getRequiredPermissions(String regionName) {
+ return Collections.singletonList(ResourcePermissions.CLUSTER_READ);
+ }
}
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JDBCConnectorFunctionsSecurityTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JDBCConnectorFunctionsSecurityTest.java
new file mode 100644
index 0000000..050bfc8
--- /dev/null
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JDBCConnectorFunctionsSecurityTest.java
@@ -0,0 +1,150 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package org.apache.geode.connectors.jdbc.internal.cli;
+
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import org.apache.geode.cache.execute.Function;
+import org.apache.geode.cache.execute.FunctionContext;
+import org.apache.geode.cache.execute.FunctionService;
+import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
+import org.apache.geode.examples.SimpleSecurityManager;
+import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
+import org.apache.geode.test.junit.categories.IntegrationTest;
+import org.apache.geode.test.junit.rules.ConnectionConfiguration;
+import org.apache.geode.test.junit.rules.GfshCommandRule;
+import org.apache.geode.test.junit.rules.ServerStarterRule;
+
+class InheritsDefaultPermissionsJDBCFunction extends JdbcCliFunction<String, CliFunctionResult> {
+
+ InheritsDefaultPermissionsJDBCFunction() {
+ super(new FunctionContextArgumentProvider(), new ExceptionHandler());
+ }
+
+ @Override
+ CliFunctionResult getFunctionResult(JdbcConnectorService service,
+ FunctionContext<String> context) {
+ return new CliFunctionResult();
+ }
+}
+
+
+@Category({IntegrationTest.class, SecurityException.class})
+public class JDBCConnectorFunctionsSecurityTest {
+
+ private static Function alterConnectionFunction = new AlterConnectionFunction();
+ private static Function alterMappingFunction = new AlterMappingFunction();
+ private static Function createConnectionFunction = new CreateConnectionFunction();
+ private static Function createMappingFunction = new CreateMappingFunction();
+ private static Function describeConnectionFunction = new DescribeConnectionFunction();
+ private static Function describeMappingFunction = new DescribeMappingFunction();
+ private static Function destroyConnectionFunction = new DestroyConnectionFunction();
+ private static Function destroyMappingFunction = new DestroyMappingFunction();
+ private static Function listConnectionFunction = new ListConnectionFunction();
+ private static Function listMappingFunction = new ListMappingFunction();
+ private static Function inheritsDefaultPermissionsFunction =
+ new InheritsDefaultPermissionsJDBCFunction();
+
+ @ClassRule
+ public static ServerStarterRule server = new ServerStarterRule().withJMXManager()
+ .withSecurityManager(SimpleSecurityManager.class).withAutoStart();
+
+ @Rule
+ public GfshCommandRule gfsh =
+ new GfshCommandRule(server::getJmxPort, GfshCommandRule.PortType.jmxManager);
+
+ @BeforeClass
+ public static void setupClass() {
+ FunctionService.registerFunction(alterConnectionFunction);
+ FunctionService.registerFunction(alterMappingFunction);
+ FunctionService.registerFunction(createConnectionFunction);
+ FunctionService.registerFunction(createMappingFunction);
+ FunctionService.registerFunction(describeConnectionFunction);
+ FunctionService.registerFunction(describeMappingFunction);
+ FunctionService.registerFunction(destroyConnectionFunction);
+ FunctionService.registerFunction(destroyMappingFunction);
+ FunctionService.registerFunction(listConnectionFunction);
+ FunctionService.registerFunction(listMappingFunction);
+ FunctionService.registerFunction(inheritsDefaultPermissionsFunction);
+ }
+
+ @Test
+ @ConnectionConfiguration(user = "dataWrite", password = "dataWrite")
+ public void testInvalidPermissionsForAlterConnectionFunction() throws Exception {
+ gfsh.executeAndAssertThat("execute function --id=" + alterConnectionFunction.getId())
+ .containsOutput("not authorized for CLUSTER:MANAGE").statusIsSuccess();
+ }
+
+ @Test
+ @ConnectionConfiguration(user = "dataWrite", password = "dataWrite")
+ public void testInvalidPermissionsForAlterMappingFunction() throws Exception {
+ gfsh.executeAndAssertThat("execute function --id=" + alterMappingFunction.getId())
+ .containsOutput("not authorized for CLUSTER:MANAGE").statusIsSuccess();
+ }
+
+ @Test
+ @ConnectionConfiguration(user = "dataWrite", password = "dataWrite")
+ public void testInvalidPermissionsForCreateConnectionFunction() throws Exception {
+ gfsh.executeAndAssertThat("execute function --id=" + createConnectionFunction.getId())
+ .containsOutput("not authorized for CLUSTER:MANAGE").statusIsSuccess();
+ }
+
+ @Test
+ @ConnectionConfiguration(user = "dataWrite", password = "dataWrite")
+ public void testInvalidPermissionsForCreateMappingFunction() throws Exception {
+ gfsh.executeAndAssertThat("execute function --id=" + createMappingFunction.getId())
+ .containsOutput("not authorized for CLUSTER:MANAGE").statusIsSuccess();
+ }
+
+ @Test
+ @ConnectionConfiguration(user = "dataWrite", password = "dataWrite")
+ public void testInvalidPermissionsForDescribeConnectionFunction() throws Exception {
+ gfsh.executeAndAssertThat("execute function --id=" + describeConnectionFunction.getId())
+ .containsOutput("not authorized for CLUSTER:READ").statusIsSuccess();
+ }
+
+ @Test
+ @ConnectionConfiguration(user = "dataWrite", password = "dataWrite")
+ public void testInvalidPermissionsForDescribeMappingFunction() throws Exception {
+ gfsh.executeAndAssertThat("execute function --id=" + describeMappingFunction.getId())
+ .containsOutput("not authorized for CLUSTER:READ").statusIsSuccess();
+ }
+
+ @Test
+ @ConnectionConfiguration(user = "dataWrite", password = "dataWrite")
+ public void testInvalidPermissionsForDestroyConnectionFunction() throws Exception {
+ gfsh.executeAndAssertThat("execute function --id=" + destroyConnectionFunction.getId())
+ .containsOutput("not authorized for CLUSTER:MANAGE").statusIsSuccess();
+ }
+
+ @Test
+ @ConnectionConfiguration(user = "dataWrite", password = "dataWrite")
+ public void testInvalidPermissionsForDestroyMappingFunction() throws Exception {
+ gfsh.executeAndAssertThat("execute function --id=" + destroyMappingFunction.getId())
+ .containsOutput("not authorized for CLUSTER:MANAGE").statusIsSuccess();
+ }
+
+ @Test
+ @ConnectionConfiguration(user = "dataWrite", password = "dataWrite")
+ public void testInvalidPermissionsForFunctionInheritingDefaultPermissions() throws Exception {
+ gfsh.executeAndAssertThat("execute function --id=" + inheritsDefaultPermissionsFunction.getId())
+ .containsOutput("not authorized for CLUSTER:READ").statusIsSuccess();
+ }
+}
--
To stop receiving notification emails like this one, please contact
['"commits@geode.apache.org" <co...@geode.apache.org>'].