You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ji...@apache.org on 2017/03/23 20:14:45 UTC
[2/4] geode git commit: GEODE-2395: use random ports when starting
the jmx manager and http services
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientAuthDUnitTest.java
deleted file mode 100644
index a8ab5b7..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientAuthDUnitTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.security;
-
-import static com.googlecode.catchexception.CatchException.*;
-import static com.googlecode.catchexception.apis.BDDCatchException.caughtException;
-import static org.assertj.core.api.Assertions.*;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.ClientCacheFactory;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientAuthDUnitTest extends AbstractSecureServerDUnitTest {
-
- @Test
- public void authWithCorrectPasswordShouldPass() {
- client1.invoke("logging in super-user with correct password", () -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("super-user", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
- });
- }
-
- @Test
- public void authWithIncorrectPasswordShouldFail() {
- client2.invoke("logging in super-user with wrong password", () -> {
- catchException(new ClientCacheFactory(createClientProperties("data", "wrong"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort)).create();
- assertThat((Throwable) caughtException()).isInstanceOf(AuthenticationFailedException.class);
- });
- }
-}
-
-
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientContainsKeyAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientContainsKeyAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientContainsKeyAuthDistributedTest.java
deleted file mode 100644
index 9a34198..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientContainsKeyAuthDistributedTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.security;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.test.dunit.AsyncInvocation;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientContainsKeyAuthDistributedTest extends AbstractSecureServerDUnitTest {
-
- @Test
- public void testContainsKey() throws InterruptedException {
- AsyncInvocation ai1 = client1.invokeAsync(() -> {
- ClientCache cache = createClientCache("key1User", "1234567", serverPort);
- final Region region = cache.getRegion(REGION_NAME);
- assertTrue(region.containsKeyOnServer("key1"));
- assertNotAuthorized(() -> region.containsKeyOnServer("key3"), "DATA:READ:AuthRegion:key3");
- });
-
- AsyncInvocation ai2 = client2.invokeAsync(() -> {
- ClientCache cache = createClientCache("authRegionReader", "1234567", serverPort);
- final Region region = cache.getRegion(REGION_NAME);
- region.containsKeyOnServer("key3");
- assertTrue(region.containsKeyOnServer("key1"));
- });
-
- ai1.join();
- ai2.join();
- ai1.checkException();
- ai2.checkException();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientDestroyInvalidateAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientDestroyInvalidateAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientDestroyInvalidateAuthDistributedTest.java
deleted file mode 100644
index 71a8156..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientDestroyInvalidateAuthDistributedTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * 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.security;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.ClientCacheFactory;
-import org.apache.geode.cache.client.ClientRegionShortcut;
-import org.apache.geode.test.dunit.AsyncInvocation;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientDestroyInvalidateAuthDistributedTest
- extends AbstractSecureServerDUnitTest {
-
- @Test
- public void testDestroyInvalidate() throws InterruptedException {
-
- // Delete one key and invalidate another key with an authorized user.
- AsyncInvocation ai1 = client1.invokeAsync(() -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("dataUser", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- assertTrue(region.containsKeyOnServer("key1"));
-
- // Destroy key1
- region.destroy("key1");
- assertFalse(region.containsKeyOnServer("key1"));
-
- // Invalidate key2
- assertNotNull("Value of key2 should not be null", region.get("key2"));
- region.invalidate("key2");
- assertNull("Value of key2 should have been null", region.get("key2"));
-
- });
-
- // Delete one key and invalidate another key with an unauthorized user.
- AsyncInvocation ai2 = client2.invokeAsync(() -> {
- ClientCache cache =
- new ClientCacheFactory(createClientProperties("authRegionReader", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
-
- assertTrue(region.containsKeyOnServer("key3"));
-
- // Destroy key1
- assertNotAuthorized(() -> region.destroy("key3"), "DATA:WRITE:AuthRegion");
- assertTrue(region.containsKeyOnServer("key3"));
-
- // Invalidate key2
- assertNotNull("Value of key4 should not be null", region.get("key4"));
- assertNotAuthorized(() -> region.invalidate("key4"), "DATA:WRITE:AuthRegion");
- assertNotNull("Value of key4 should not be null", region.get("key4"));
- });
-
- ai1.join();
- ai2.join();
- ai1.checkException();
- ai2.checkException();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientDestroyRegionAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientDestroyRegionAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientDestroyRegionAuthDistributedTest.java
deleted file mode 100644
index 2366e3d..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientDestroyRegionAuthDistributedTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.security;
-
-import static org.assertj.core.api.Assertions.*;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.ClientCacheFactory;
-import org.apache.geode.cache.client.ClientRegionShortcut;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientDestroyRegionAuthDistributedTest
- extends AbstractSecureServerDUnitTest {
-
- @Test
- public void testDestroyRegion() throws InterruptedException {
- client1.invoke(() -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("dataWriter", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- assertNotAuthorized(() -> region.destroyRegion(), "DATA:MANAGE");
- });
-
- client2.invoke(() -> {
- ClientCache cache =
- new ClientCacheFactory(createClientProperties("authRegionManager", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- assertNotAuthorized(() -> region.destroyRegion(), "DATA:MANAGE");
- });
-
- client3.invoke(() -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("super-user", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- region.destroyRegion();
- assertThat(region.isDestroyed()).isTrue();
- });
- }
-
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientExecuteFunctionAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientExecuteFunctionAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientExecuteFunctionAuthDistributedTest.java
deleted file mode 100644
index ad6b226..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientExecuteFunctionAuthDistributedTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.security;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.execute.Function;
-import org.apache.geode.cache.execute.FunctionService;
-import org.apache.geode.cache.execute.ResultCollector;
-import org.apache.geode.internal.cache.functions.TestFunction;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientExecuteFunctionAuthDistributedTest
- extends AbstractSecureServerDUnitTest {
-
- private final static Function function = new TestFunction(true, TestFunction.TEST_FUNCTION1);
-
- @Test
- public void testExecuteRegionFunctionWithClientRegistration() {
-
- FunctionService.registerFunction(function);
- client1.invoke("logging in with dataReader", () -> {
- ClientCache cache = createClientCache("dataReader", "1234567", serverPort);
-
- FunctionService.registerFunction(function);
-
- assertNotAuthorized(() -> FunctionService.onServer(cache.getDefaultPool())
- .withArgs(Boolean.TRUE).execute(function.getId()), "DATA:WRITE");
- });
-
- client2.invoke("logging in with super-user", () -> {
- ClientCache cache = createClientCache("super-user", "1234567", serverPort);
-
- FunctionService.registerFunction(function);
- ResultCollector rc = FunctionService.onServer(cache.getDefaultPool()).withArgs(Boolean.TRUE)
- .execute(function.getId());
- rc.getResult();
- });
- }
-
- @Test
- // this would trigger the client to send a GetFunctionAttribute command before executing it
- public void testExecuteRegionFunctionWithOutClientRegistration() {
- FunctionService.registerFunction(function);
- client1.invoke("logging in with dataReader", () -> {
- ClientCache cache = createClientCache("dataReader", "1234567", serverPort);
- assertNotAuthorized(() -> FunctionService.onServer(cache.getDefaultPool())
- .withArgs(Boolean.TRUE).execute(function.getId()), "DATA:WRITE");
- });
- }
-}
-
-
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientExecuteRegionFunctionAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientExecuteRegionFunctionAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientExecuteRegionFunctionAuthDistributedTest.java
deleted file mode 100644
index eb9de5d..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientExecuteRegionFunctionAuthDistributedTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.security;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.execute.Function;
-import org.apache.geode.cache.execute.FunctionService;
-import org.apache.geode.cache.execute.ResultCollector;
-import org.apache.geode.internal.cache.functions.TestFunction;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientExecuteRegionFunctionAuthDistributedTest
- extends AbstractSecureServerDUnitTest {
-
- private final static Function function = new TestFunction(true, TestFunction.TEST_FUNCTION1);
-
- @Test
- public void testExecuteRegionFunction() {
-
- FunctionService.registerFunction(function);
-
- client1.invoke("logging in with dataReader", () -> {
- ClientCache cache = createClientCache("dataReader", "1234567", serverPort);
-
- FunctionService.registerFunction(function);
- assertNotAuthorized(() -> FunctionService.onRegion(cache.getRegion(REGION_NAME))
- .withArgs(Boolean.TRUE).execute(function.getId()), "DATA:WRITE");
- });
-
- client2.invoke("logging in with super-user", () -> {
- ClientCache cache = createClientCache("super-user", "1234567", serverPort);
-
- FunctionService.registerFunction(function);
- ResultCollector rc = FunctionService.onRegion(cache.getRegion(REGION_NAME))
- .withArgs(Boolean.TRUE).execute(function.getId());
- rc.getResult();
- });
- }
-}
-
-
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetAllAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetAllAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetAllAuthDistributedTest.java
deleted file mode 100644
index cec4de6..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetAllAuthDistributedTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.security;
-
-import static org.apache.geode.internal.Assert.assertTrue;
-import static org.jgroups.util.Util.*;
-
-import java.util.Arrays;
-import java.util.Map;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientGetAllAuthDistributedTest extends AbstractSecureServerDUnitTest {
-
- @Test
- public void testGetAll() {
- client1.invoke("logging in Stranger", () -> {
- ClientCache cache = createClientCache("stranger", "1234567", serverPort);
-
- Region region = cache.getRegion(REGION_NAME);
- Map emptyMap = region.getAll(Arrays.asList("key1", "key2", "key3", "key4"));
- assertTrue(emptyMap.isEmpty());
- });
-
- client2.invoke("logging in authRegionReader", () -> {
- ClientCache cache = createClientCache("authRegionReader", "1234567", serverPort);
-
- Region region = cache.getRegion(REGION_NAME);
- Map filledMap = region.getAll(Arrays.asList("key1", "key2", "key3", "key4"));
- assertEquals("Map should contain 4 entries", 4, filledMap.size());
- assertTrue(filledMap.containsKey("key1"));
- });
- }
-}
-
-
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetClientPRMetaDataAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetClientPRMetaDataAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetClientPRMetaDataAuthDistributedTest.java
deleted file mode 100644
index f4aa9c9..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetClientPRMetaDataAuthDistributedTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.security;
-
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.ClientCacheFactory;
-import org.apache.geode.cache.client.ClientRegionShortcut;
-import org.apache.geode.cache.client.internal.ClientMetadataService;
-import org.apache.geode.internal.cache.GemFireCacheImpl;
-import org.apache.geode.internal.cache.LocalRegion;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientGetClientPRMetaDataAuthDistributedTest
- extends AbstractSecureServerDUnitTest {
-
- @Test
- @Ignore("This is not a supported client message")
- // this would fail sporadically because ServerConnection.isInternalMessage would return true for
- // this message,
- // and it won't bind the correct subject on the executing thread.
- public void testGetClientPartitionAttrCmd() {
- client1.invoke("logging in stranger", () -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("stranger", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
-
- ClientMetadataService service = ((GemFireCacheImpl) cache).getClientMetadataService();
- assertNotAuthorized(
- () -> service.getClientPRMetadata((LocalRegion) cache.getRegion(region.getName())),
- "CLUSTER:READ");
- });
-
- client2.invoke("logging in super-user", () -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("super-user", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
-
- ClientMetadataService service = ((GemFireCacheImpl) cache).getClientMetadataService();
- service.getClientPRMetadata((LocalRegion) cache.getRegion(region.getName()));
- });
- }
-}
-
-
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetClientPartitionAttrCmdAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetClientPartitionAttrCmdAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetClientPartitionAttrCmdAuthDistributedTest.java
deleted file mode 100644
index 706e168..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetClientPartitionAttrCmdAuthDistributedTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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.security;
-
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.internal.GetClientPartitionAttributesOp;
-import org.apache.geode.cache.client.internal.PoolImpl;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientGetClientPartitionAttrCmdAuthDistributedTest
- extends AbstractSecureServerDUnitTest {
-
- @Test
- @Ignore("This is not a supported client message")
- // this would fail sporatically because ServerConnection.isInternalMessage would return true for
- // this message,
- // and it won't bind the correct subject on the executing thread.
- public void testGetClientPartitionAttrCmd() {
- client1.invoke("logging in stranger", () -> {
- ClientCache cache = createClientCache("stranger", "1234567", serverPort);
-
- assertNotAuthorized(() -> GetClientPartitionAttributesOp
- .execute((PoolImpl) cache.getDefaultPool(), REGION_NAME), "CLUSTER:READ");
- });
-
- client2.invoke("logging in super-user with correct password", () -> {
- ClientCache cache = createClientCache("super-user", "1234567", serverPort);
-
- GetClientPartitionAttributesOp.execute((PoolImpl) cache.getDefaultPool(), REGION_NAME);
- });
- }
-}
-
-
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetEntryAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetEntryAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetEntryAuthDistributedTest.java
deleted file mode 100644
index 57fc263..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetEntryAuthDistributedTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * 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.security;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.CacheTransactionManager;
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.ClientCacheFactory;
-import org.apache.geode.cache.client.ClientRegionShortcut;
-import org.apache.geode.test.dunit.AsyncInvocation;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientGetEntryAuthDistributedTest extends AbstractSecureServerDUnitTest {
-
- @Test
- public void testGetEntry() throws InterruptedException {
- // client1 connects to server as a user not authorized to do any operations
-
- AsyncInvocation ai1 = client1.invokeAsync(() -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("stranger", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- CacheTransactionManager transactionManager = cache.getCacheTransactionManager();
- transactionManager.begin();
- try {
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- assertNotAuthorized(() -> region.getEntry("key3"), "DATA:READ:AuthRegion:key3");
- } finally {
- transactionManager.commit();
- }
-
- });
-
- AsyncInvocation ai2 = client2.invokeAsync(() -> {
- ClientCache cache =
- new ClientCacheFactory(createClientProperties("authRegionReader", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- CacheTransactionManager transactionManager = cache.getCacheTransactionManager();
- transactionManager.begin();
- try {
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- region.getEntry("key3");
- } finally {
- transactionManager.commit();
- }
-
- });
-
- ai1.join();
- ai2.join();
- ai1.checkException();
- ai2.checkException();
-
- }
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetPutAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetPutAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetPutAuthDistributedTest.java
deleted file mode 100644
index 2d5bfdc..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientGetPutAuthDistributedTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * 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.security;
-
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.test.dunit.AsyncInvocation;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.FlakyTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class, FlakyTest.class})
-public class IntegratedClientGetPutAuthDistributedTest extends AbstractSecureServerDUnitTest {
-
- @Test
- public void testGetPutAuthorization() throws InterruptedException {
- Map<String, String> allValues = new HashMap<String, String>();
- allValues.put("key1", "value1");
- allValues.put("key2", "value2");
-
- List<String> keys = new ArrayList<>();
- keys.add("key1");
- keys.add("key2");
-
- // client1 connects to server as a user not authorized to do any operations
- AsyncInvocation ai1 = client1.invokeAsync(() -> {
- ClientCache cache = createClientCache("stranger", "1234567", serverPort);
- Region region = cache.getRegion(REGION_NAME);
-
- assertNotAuthorized(() -> region.put("key3", "value3"), "DATA:WRITE:AuthRegion:key3");
- assertNotAuthorized(() -> region.get("key3"), "DATA:READ:AuthRegion:key3");
-
- // putall
- assertNotAuthorized(() -> region.putAll(allValues), "DATA:WRITE:AuthRegion");
-
- // not authorized for either keys, get no record back
- Map keyValues = region.getAll(keys);
- assertEquals(0, keyValues.size());
-
- assertNotAuthorized(() -> region.keySetOnServer(), "DATA:READ:AuthRegion");
- });
-
-
- // client2 connects to user as a user authorized to use AuthRegion region
- AsyncInvocation ai2 = client2.invokeAsync(() -> {
- ClientCache cache = createClientCache("authRegionUser", "1234567", serverPort);
- Region region = cache.getRegion(REGION_NAME);
-
- region.put("key3", "value3");
- assertEquals("value3", region.get("key3"));
-
- // put all
- region.putAll(allValues);
-
- // get all
- Map keyValues = region.getAll(keys);
- assertEquals(2, keyValues.size());
-
- // keyset
- Set keySet = region.keySetOnServer();
- assertEquals(5, keySet.size());
- });
-
- // client3 connects to user as a user authorized to use key1 in AuthRegion region
- AsyncInvocation ai3 = client3.invokeAsync(() -> {
- ClientCache cache = createClientCache("key1User", "1234567", serverPort);
- Region region = cache.getRegion(REGION_NAME);
-
- assertNotAuthorized(() -> region.put("key2", "value1"), "DATA:WRITE:AuthRegion:key2");
- assertNotAuthorized(() -> region.get("key2"), "DATA:READ:AuthRegion:key2");
-
- assertNotAuthorized(() -> region.putAll(allValues), "DATA:WRITE:AuthRegion");
-
- // only authorized for one recrod
- Map keyValues = region.getAll(keys);
- assertEquals(1, keyValues.size());
-
- // keyset
- assertNotAuthorized(() -> region.keySetOnServer(), "DATA:READ:AuthRegion");
- });
-
- ai1.join();
- ai2.join();
- ai3.join();
-
- ai1.checkException();
- ai2.checkException();
- ai3.checkException();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRegionClearAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRegionClearAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRegionClearAuthDistributedTest.java
deleted file mode 100644
index d5dbbdb..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRegionClearAuthDistributedTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.security;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.ClientCacheFactory;
-import org.apache.geode.cache.client.ClientRegionShortcut;
-import org.apache.geode.test.dunit.SerializableRunnable;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.FlakyTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientRegionClearAuthDistributedTest extends AbstractSecureServerDUnitTest {
-
- @Category(FlakyTest.class) // GEODE-1876
- @Test
- public void testRegionClear() throws InterruptedException {
- // Verify that an unauthorized user can't clear the region
- SerializableRunnable clearUnauthorized = new SerializableRunnable() {
- @Override
- public void run() {
- ClientCache cache = new ClientCacheFactory(createClientProperties("stranger", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- assertNotAuthorized(() -> region.clear(), "DATA:WRITE:AuthRegion");
- }
- };
- client1.invoke(clearUnauthorized);
-
- // Verify that an authorized user can clear the region
- SerializableRunnable clearAuthorized = new SerializableRunnable() {
- @Override
- public void run() {
- ClientCache cache =
- new ClientCacheFactory(createClientProperties("authRegionUser", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- region.clear();
- }
- };
- client2.invoke(clearAuthorized);
- }
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRegisterInterestAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRegisterInterestAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRegisterInterestAuthDistributedTest.java
deleted file mode 100644
index d74c7d0..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRegisterInterestAuthDistributedTest.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * 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.security;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.ClientCacheFactory;
-import org.apache.geode.cache.client.ClientRegionShortcut;
-import org.apache.geode.test.dunit.AsyncInvocation;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientRegisterInterestAuthDistributedTest
- extends AbstractSecureServerDUnitTest {
- @Test
- public void testRegisterInterest() throws InterruptedException {
- // client1 connects to server as a user not authorized to do any operations
- AsyncInvocation ai1 = client1.invokeAsync(() -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("stranger", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- assertNotAuthorized(() -> region.registerInterest("key3"), "DATA:READ:AuthRegion:key3");
- });
-
- // client2 connects to user as a user authorized to use AuthRegion region
- AsyncInvocation ai2 = client2.invokeAsync(() -> {
- ClientCache cache =
- new ClientCacheFactory(createClientProperties("authRegionUser", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- region.registerInterest("key3"); // DATA:READ:AuthRegion:key3;
- });
-
- // client3 connects to user as a user authorized to use key1 in AuthRegion region
- AsyncInvocation ai3 = client3.invokeAsync(() -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("key1User", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- assertNotAuthorized(() -> region.registerInterest("key2"), "DATA:READ:AuthRegion:key2");
- });
-
- ai1.join();
- ai2.join();
- ai3.join();
-
- ai1.checkException();
- ai2.checkException();
- ai3.checkException();
- }
-
- @Test
- public void testRegisterInterestRegex() throws InterruptedException {
- // client1 connects to server as a user not authorized to do any operations
- AsyncInvocation ai1 = client1.invokeAsync(() -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("stranger", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- assertNotAuthorized(() -> region.registerInterestRegex("key.*"), "DATA:READ:AuthRegion");
- });
-
- // client2 connects to user as a user authorized to use AuthRegion region
- AsyncInvocation ai2 = client2.invokeAsync(() -> {
- ClientCache cache =
- new ClientCacheFactory(createClientProperties("authRegionUser", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- region.registerInterestRegex("key[0-9]+"); // DATA:READ:AuthRegion:key3;
- });
-
- // client3 connects to user as a user authorized to use key1 in AuthRegion region
- AsyncInvocation ai3 = client3.invokeAsync(() -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("key1User", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- assertNotAuthorized(() -> region.registerInterestRegex("key[0-9]+"), "DATA:READ:AuthRegion");
- assertNotAuthorized(() -> region.registerInterestRegex("key1"), "DATA:READ:AuthRegion");
- });
-
- ai1.join();
- ai2.join();
- ai3.join();
-
- ai1.checkException();
- ai2.checkException();
- ai3.checkException();
- }
-
- @Test
- public void testRegisterInterestList() throws InterruptedException {
- List<String> keys = new ArrayList<>();
- keys.add("key1");
- keys.add("key2");
-
- // client1 connects to server as a user not authorized to do any operations
- AsyncInvocation ai1 = client1.invokeAsync(() -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("stranger", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- assertNotAuthorized(() -> region.registerInterest(keys), "DATA:READ:AuthRegion");
- });
-
- // client2 connects to user as a user authorized to use AuthRegion region
- AsyncInvocation ai2 = client2.invokeAsync(() -> {
- ClientCache cache =
- new ClientCacheFactory(createClientProperties("authRegionUser", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- region.registerInterest(keys); // DATA:READ:AuthRegion;
- });
-
- // client3 connects to user as a user authorized to use key1 in AuthRegion region
- AsyncInvocation ai3 = client3.invokeAsync(() -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("key1User", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- assertNotAuthorized(() -> region.registerInterest(keys), "DATA:READ:AuthRegion");
- });
-
- ai1.join();
- ai2.join();
- ai3.join();
-
- ai1.checkException();
- ai2.checkException();
- ai3.checkException();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRemoveAllAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRemoveAllAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRemoveAllAuthDistributedTest.java
deleted file mode 100644
index ecb32a7..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRemoveAllAuthDistributedTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.security;
-
-import static org.junit.Assert.*;
-
-import java.util.Arrays;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.ClientCacheFactory;
-import org.apache.geode.cache.client.ClientRegionShortcut;
-import org.apache.geode.test.dunit.AsyncInvocation;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientRemoveAllAuthDistributedTest extends AbstractSecureServerDUnitTest {
-
- @Test
- public void testRemoveAll() throws InterruptedException {
-
- AsyncInvocation ai1 = client1.invokeAsync(() -> {
- ClientCache cache =
- new ClientCacheFactory(createClientProperties("authRegionReader", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- assertNotAuthorized(() -> region.removeAll(Arrays.asList("key1", "key2", "key3", "key4")),
- "DATA:WRITE:AuthRegion");
- });
-
- AsyncInvocation ai2 = client2.invokeAsync(() -> {
- ClientCache cache =
- new ClientCacheFactory(createClientProperties("authRegionWriter", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- region.removeAll(Arrays.asList("key1", "key2", "key3", "key4"));
- assertFalse(region.containsKey("key1"));
- assertNotAuthorized(() -> region.containsKeyOnServer("key1"), "DATA:READ:AuthRegion:key1");
- });
- ai1.join();
- ai2.join();
- ai1.checkException();
- ai2.checkException();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientSizeAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientSizeAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientSizeAuthDistributedTest.java
deleted file mode 100644
index 84c0399..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientSizeAuthDistributedTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.security;
-
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.internal.InternalPool;
-import org.apache.geode.cache.client.internal.SizeOp;
-import org.apache.geode.test.dunit.AsyncInvocation;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientSizeAuthDistributedTest extends AbstractSecureServerDUnitTest {
-
- @Test
- @Ignore("This is not a supported client message")
- // this would fail sporadically because ServerConnection.isInternalMessage would return true for
- // this message,
- // and it won't bind the correct subject on the executing thread.
- public void testSize() throws InterruptedException {
-
- AsyncInvocation ai1 = client1.invokeAsync(() -> {
- ClientCache cache = createClientCache("dataWriter", "1234567", serverPort);
- assertNotAuthorized(() -> SizeOp.execute((InternalPool) cache.getDefaultPool(), REGION_NAME),
- "DATA:READ:AuthRegion");
- });
-
- AsyncInvocation ai2 = client2.invokeAsync(() -> {
- ClientCache cache = createClientCache("authRegionReader", "1234567", serverPort);
- SizeOp.execute((InternalPool) cache.getDefaultPool(), REGION_NAME);
- });
-
- ai1.join();
- ai2.join();
- ai1.checkException();
- ai2.checkException();
- }
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/IntegratedClientUnregisterInterestAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientUnregisterInterestAuthDistributedTest.java b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientUnregisterInterestAuthDistributedTest.java
deleted file mode 100644
index 8b99d58..0000000
--- a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientUnregisterInterestAuthDistributedTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.security;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.ClientCacheFactory;
-import org.apache.geode.cache.client.ClientRegionShortcut;
-import org.apache.geode.test.dunit.AsyncInvocation;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
-
-@Category({DistributedTest.class, SecurityTest.class})
-public class IntegratedClientUnregisterInterestAuthDistributedTest
- extends AbstractSecureServerDUnitTest {
-
- @Test
- public void testUnregisterInterest() throws InterruptedException {
- // client2 connects to user as a user authorized to use AuthRegion region
- AsyncInvocation ai1 = client2.invokeAsync(() -> {
- ClientCache cache =
- new ClientCacheFactory(createClientProperties("authRegionUser", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
-
- Region region =
- cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
- region.registerInterest("key3");
- region.unregisterInterest("key3"); // DATA:READ:AuthRegion:key3;
- });
- ai1.join();
- ai1.checkException();
- }
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/NoShowValue1PostProcessorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/NoShowValue1PostProcessorDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/NoShowValue1PostProcessorDUnitTest.java
index f7a0885..480ab1c 100644
--- a/geode-core/src/test/java/org/apache/geode/security/NoShowValue1PostProcessorDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/NoShowValue1PostProcessorDUnitTest.java
@@ -14,32 +14,59 @@
*/
package org.apache.geode.security;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import static org.apache.geode.security.SecurityTestUtil.createClientCache;
+import static org.apache.geode.security.SecurityTestUtil.createProxyRegion;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import org.apache.geode.cache.Region;
+import org.apache.geode.cache.RegionShortcut;
import org.apache.geode.cache.client.ClientCache;
import org.apache.geode.cache.client.Pool;
import org.apache.geode.cache.client.PoolManager;
import org.apache.geode.cache.query.SelectResults;
+import org.apache.geode.test.dunit.Host;
+import org.apache.geode.test.dunit.VM;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
+import org.apache.geode.test.dunit.rules.ServerStarterRule;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.SecurityTest;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
@Category({DistributedTest.class, SecurityTest.class})
-public class NoShowValue1PostProcessorDUnitTest extends AbstractSecureServerDUnitTest {
+public class NoShowValue1PostProcessorDUnitTest extends JUnit4DistributedTestCase {
+
+ private static String REGION_NAME = "AuthRegion";
+
+ final Host host = Host.getHost(0);
+ final VM client1 = host.getVM(1);
+
+ @Rule
+ public ServerStarterRule server =
+ new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+ .withProperty(TestSecurityManager.SECURITY_JSON,
+ "org/apache/geode/management/internal/security/clientServer.json")
+ .withProperty(SECURITY_POST_PROCESSOR, NoShowValue1PostProcessor.class.getName())
+ .startServer();
- public Properties getProperties() {
- Properties properties = super.getProperties();
- properties.setProperty(SECURITY_POST_PROCESSOR, NoShowValue1PostProcessor.class.getName());
- return properties;
+ @Before
+ public void before() throws Exception {
+ Region region =
+ server.getCache().createRegionFactory(RegionShortcut.REPLICATE).create(REGION_NAME);
+ for (int i = 0; i < 5; i++) {
+ region.put("key" + i, "value" + i);
+ }
}
@Test
@@ -49,8 +76,8 @@ public class NoShowValue1PostProcessorDUnitTest extends AbstractSecureServerDUni
keys.add("key2");
client1.invoke(() -> {
- ClientCache cache = createClientCache("super-user", "1234567", serverPort);
- Region region = cache.getRegion(REGION_NAME);
+ ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
+ Region region = createProxyRegion(cache, REGION_NAME);
// post process for get
assertEquals("value3", region.get("key3"));
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/PDXGfshPostProcessorOnRemoteServerTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/PDXGfshPostProcessorOnRemoteServerTest.java b/geode-core/src/test/java/org/apache/geode/security/PDXGfshPostProcessorOnRemoteServerTest.java
index ae9b04f..c28f7aa 100644
--- a/geode-core/src/test/java/org/apache/geode/security/PDXGfshPostProcessorOnRemoteServerTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/PDXGfshPostProcessorOnRemoteServerTest.java
@@ -15,97 +15,65 @@
package org.apache.geode.security;
-import static org.apache.geode.distributed.ConfigurationProperties.*;
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.util.Properties;
-import java.util.concurrent.TimeUnit;
-
-import org.awaitility.Awaitility;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.CacheFactory;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.RegionShortcut;
-import org.apache.geode.cache.server.CacheServer;
-import org.apache.geode.distributed.Locator;
-import org.apache.geode.distributed.internal.InternalDistributedSystem;
-import org.apache.geode.internal.AvailablePortHelper;
import org.apache.geode.internal.security.SecurityService;
import org.apache.geode.management.ManagementService;
-import org.apache.geode.management.cli.Result.Status;
-import org.apache.geode.management.internal.cli.CliUtil;
-import org.apache.geode.management.internal.cli.HeadlessGfsh;
import org.apache.geode.management.internal.cli.i18n.CliStrings;
import org.apache.geode.management.internal.cli.result.CommandResult;
-import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
import org.apache.geode.pdx.SimpleClass;
-import org.apache.geode.test.dunit.Host;
-import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
+import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
+import org.apache.geode.test.dunit.rules.Locator;
+import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
+import org.apache.geode.test.dunit.rules.MemberVM;
+import org.apache.geode.test.dunit.rules.Server;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.SecurityTest;
+import org.awaitility.Awaitility;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import java.util.Properties;
+import java.util.concurrent.TimeUnit;
@Category({DistributedTest.class, SecurityTest.class})
-public class PDXGfshPostProcessorOnRemoteServerTest extends JUnit4DistributedTestCase {
+public class PDXGfshPostProcessorOnRemoteServerTest {
protected static final String REGION_NAME = "AuthRegion";
- protected VM locator = null;
- protected VM server = null;
-
- @Before
- public void before() throws Exception {
- final Host host = Host.getHost(0);
- this.locator = host.getVM(0);
- this.server = host.getVM(1);
- }
+
+ @Rule
+ public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
+
+ @Rule
+ public GfshShellConnectionRule gfsh = new GfshShellConnectionRule();
@Test
public void testGfshCommand() throws Exception {
- // set up locator with security
- int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);
- int locatorPort = ports[0];
- int jmxPort = ports[1];
- locator.invoke(() -> {
- Properties props = new Properties();
- props.setProperty(TestSecurityManager.SECURITY_JSON,
- "org/apache/geode/management/internal/security/clientServer.json");
- props.setProperty(SECURITY_MANAGER, TestSecurityManager.class.getName());
- props.setProperty(MCAST_PORT, "0");
- props.put(JMX_MANAGER, "true");
- props.put(JMX_MANAGER_START, "true");
- props.put(JMX_MANAGER_PORT, jmxPort + "");
- props.setProperty(SECURITY_POST_PROCESSOR, PDXPostProcessor.class.getName());
- Locator.startLocatorAndDS(locatorPort, new File("locator.log"), props);
- });
-
- // set up server with security
- String locators = "localhost[" + locatorPort + "]";
- server.invoke(() -> {
- Properties props = new Properties();
- props.setProperty(MCAST_PORT, "0");
- props.setProperty(LOCATORS, locators);
- props.setProperty(TestSecurityManager.SECURITY_JSON,
- "org/apache/geode/management/internal/security/clientServer.json");
- props.setProperty(SECURITY_MANAGER, TestSecurityManager.class.getName());
- props.setProperty(SECURITY_POST_PROCESSOR, PDXPostProcessor.class.getName());
- props.setProperty(USE_CLUSTER_CONFIGURATION, "true");
-
- // the following are needed for peer-to-peer authentication
- props.setProperty("security-username", "super-user");
- props.setProperty("security-password", "1234567");
- InternalDistributedSystem ds = getSystem(props);
-
- Cache cache = CacheFactory.create(ds);
+ Properties locatorProps = new Properties();
+ locatorProps.setProperty(TestSecurityManager.SECURITY_JSON,
+ "org/apache/geode/management/internal/security/clientServer.json");
+ locatorProps.setProperty(SECURITY_MANAGER, TestSecurityManager.class.getName());
+ locatorProps.setProperty(SECURITY_POST_PROCESSOR, PDXPostProcessor.class.getName());
+
+ MemberVM<Locator> locatorVM = lsRule.startLocatorVM(0, locatorProps);
+
+ Properties serverProps = new Properties();
+ serverProps.setProperty(TestSecurityManager.SECURITY_JSON,
+ "org/apache/geode/management/internal/security/clientServer.json");
+ serverProps.setProperty("security-username", "super-user");
+ serverProps.setProperty("security-password", "1234567");
+ MemberVM<Server> serverVM = lsRule.startServerVM(1, serverProps, locatorVM.getPort());
+
+ serverVM.invoke(() -> {
+ Cache cache = LocatorServerStartupRule.serverStarter.getCache();
Region region = cache.createRegionFactory(RegionShortcut.REPLICATE).create(REGION_NAME);
-
- CacheServer server = cache.addCacheServer();
- server.setPort(0);
- server.start();
-
for (int i = 0; i < 5; i++) {
SimpleClass obj = new SimpleClass(i, (byte) i);
region.put("key" + i, obj);
@@ -113,7 +81,7 @@ public class PDXGfshPostProcessorOnRemoteServerTest extends JUnit4DistributedTes
});
// wait until the region bean is visible
- locator.invoke(() -> {
+ locatorVM.invoke(() -> {
Awaitility.await().pollInterval(500, TimeUnit.MICROSECONDS).atMost(5, TimeUnit.SECONDS)
.until(() -> {
Cache cache = CacheFactory.getAnyInstance();
@@ -123,33 +91,16 @@ public class PDXGfshPostProcessorOnRemoteServerTest extends JUnit4DistributedTes
});
});
- // run gfsh command in this vm
- CliUtil.isGfshVM = true;
- String shellId = getClass().getSimpleName();
- HeadlessGfsh gfsh = new HeadlessGfsh(shellId, 30, "gfsh_files");
-
- // connect to the jmx server
- final CommandStringBuilder connectCommand = new CommandStringBuilder(CliStrings.CONNECT);
- connectCommand.addOption(CliStrings.CONNECT__USERNAME, "dataUser");
- connectCommand.addOption(CliStrings.CONNECT__PASSWORD, "1234567");
-
- String endpoint = "localhost[" + jmxPort + "]";
- connectCommand.addOption(CliStrings.CONNECT__JMX_MANAGER, endpoint);
-
- gfsh.executeCommand(connectCommand.toString());
- CommandResult result = (CommandResult) gfsh.getResult();
+ gfsh.connectAndVerify(locatorVM.getJmxPort(), GfshShellConnectionRule.PortType.jmxManger,
+ CliStrings.CONNECT__USERNAME, "dataUser", CliStrings.CONNECT__PASSWORD, "1234567");
// get command
- gfsh.executeCommand("get --key=key1 --region=AuthRegion");
- result = (CommandResult) gfsh.getResult();
- assertEquals(result.getStatus(), Status.OK);
+ CommandResult result = gfsh.executeAndVerifyCommand("get --key=key1 --region=AuthRegion");
assertTrue(result.getContent().toString().contains(SimpleClass.class.getName()));
- gfsh.executeCommand("query --query=\"select * from /AuthRegion\"");
- result = (CommandResult) gfsh.getResult();
+ gfsh.executeAndVerifyCommand("query --query=\"select * from /AuthRegion\"");
- CliUtil.isGfshVM = false;
- server.invoke(() -> {
+ serverVM.invoke(() -> {
PDXPostProcessor pp =
(PDXPostProcessor) SecurityService.getSecurityService().getPostProcessor();
// verify that the post processor is called 6 times. (5 for the query, 1 for the get)
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java
index f8b17bc..ad72fab 100644
--- a/geode-core/src/test/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java
@@ -15,52 +15,59 @@
package org.apache.geode.security;
-import static org.apache.geode.distributed.ConfigurationProperties.*;
-import static org.junit.Assert.*;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-import java.util.concurrent.TimeUnit;
-
-import org.awaitility.Awaitility;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
+import static org.apache.geode.security.SecurityTestUtil.createClientCache;
+import static org.apache.geode.security.SecurityTestUtil.createProxyRegion;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import org.apache.geode.cache.EntryEvent;
import org.apache.geode.cache.Region;
+import org.apache.geode.cache.RegionShortcut;
import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.ClientCacheFactory;
import org.apache.geode.cache.client.ClientRegionFactory;
import org.apache.geode.cache.client.ClientRegionShortcut;
import org.apache.geode.cache.query.SelectResults;
import org.apache.geode.cache.util.CacheListenerAdapter;
-import org.apache.geode.internal.AvailablePortHelper;
import org.apache.geode.internal.cache.EntryEventImpl;
import org.apache.geode.internal.security.SecurityService;
-import org.apache.geode.management.cli.Result.Status;
-import org.apache.geode.management.internal.cli.CliUtil;
-import org.apache.geode.management.internal.cli.HeadlessGfsh;
-import org.apache.geode.management.internal.cli.i18n.CliStrings;
import org.apache.geode.management.internal.cli.result.CommandResult;
-import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
import org.apache.geode.pdx.SimpleClass;
+import org.apache.geode.test.dunit.Host;
+import org.apache.geode.test.dunit.IgnoredException;
+import org.apache.geode.test.dunit.VM;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
+import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
+import org.apache.geode.test.dunit.rules.ServerStarterRule;
import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.FlakyTest;
import org.apache.geode.test.junit.categories.SecurityTest;
import org.apache.geode.test.junit.runners.CategoryWithParameterizedRunnerFactory;
+import org.awaitility.Awaitility;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.concurrent.TimeUnit;
@Category({DistributedTest.class, SecurityTest.class})
@RunWith(Parameterized.class)
@Parameterized.UseParametersRunnerFactory(CategoryWithParameterizedRunnerFactory.class)
-public class PDXPostProcessorDUnitTest extends AbstractSecureServerDUnitTest {
+public class PDXPostProcessorDUnitTest extends JUnit4DistributedTestCase {
+ private static String REGION_NAME = "AuthRegion";
+
+ final Host host = Host.getHost(0);
+ final VM client1 = host.getVM(1);
+ final VM client2 = host.getVM(2);
+
+ private boolean pdxPersistent = false;
private static byte[] BYTES = PDXPostProcessor.BYTES;
- private int jmxPort = AvailablePortHelper.getRandomAvailableTCPPort();
@Parameterized.Parameters
public static Collection<Object[]> parameters() {
@@ -68,27 +75,24 @@ public class PDXPostProcessorDUnitTest extends AbstractSecureServerDUnitTest {
return Arrays.asList(params);
}
- public Properties getProperties() {
- Properties properties = super.getProperties();
- properties.setProperty(SECURITY_POST_PROCESSOR, PDXPostProcessor.class.getName());
- properties.setProperty(JMX_MANAGER_PORT, jmxPort + "");
- properties.setProperty("security-pdx", pdxPersistent + "");
- return properties;
- }
-
- public Map<String, String> getData() {
- return new HashMap();
- }
-
public PDXPostProcessorDUnitTest(boolean pdxPersistent) {
this.pdxPersistent = pdxPersistent;
}
+ @Rule
+ public ServerStarterRule server =
+ new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+ .withProperty(TestSecurityManager.SECURITY_JSON,
+ "org/apache/geode/management/internal/security/clientServer.json")
+ .withProperty(SECURITY_POST_PROCESSOR, PDXPostProcessor.class.getName())
+ .withProperty("security-pdx", pdxPersistent + "").withJMXManager().startServer()
+ .createRegion(RegionShortcut.REPLICATE, REGION_NAME);
+
@Test
public void testRegionGet() {
client2.invoke(() -> {
- ClientCache cache = createClientCache("super-user", "1234567", serverPort);
- Region region = cache.getRegion(REGION_NAME);
+ ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
+ Region region = createProxyRegion(cache, REGION_NAME);
// put in a value that's a domain object
region.put("key1", new SimpleClass(1, (byte) 1));
// put in a byte value
@@ -96,8 +100,8 @@ public class PDXPostProcessorDUnitTest extends AbstractSecureServerDUnitTest {
});
client1.invoke(() -> {
- ClientCache cache = createClientCache("super-user", "1234567", serverPort);
- Region region = cache.getRegion(REGION_NAME);
+ ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
+ Region region = createProxyRegion(cache, REGION_NAME);
// post process for get the client domain object
Object value = region.get("key1");
@@ -117,16 +121,16 @@ public class PDXPostProcessorDUnitTest extends AbstractSecureServerDUnitTest {
@Test
public void testQuery() {
client2.invoke(() -> {
- ClientCache cache = createClientCache("super-user", "1234567", serverPort);
- Region region = cache.getRegion(REGION_NAME);
+ ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
+ Region region = createProxyRegion(cache, REGION_NAME);
// put in a value that's a domain object
region.put("key1", new SimpleClass(1, (byte) 1));
region.put("key2", BYTES);
});
client1.invoke(() -> {
- ClientCache cache = createClientCache("super-user", "1234567", serverPort);
- Region region = cache.getRegion(REGION_NAME);
+ ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
+ Region region = createProxyRegion(cache, REGION_NAME);
// post process for query
String query = "select * from /AuthRegion";
@@ -149,12 +153,11 @@ public class PDXPostProcessorDUnitTest extends AbstractSecureServerDUnitTest {
assertEquals(pp.getCount(), 2);
}
- @Category(FlakyTest.class) // GEODE-2204
@Test
public void testRegisterInterest() {
+ IgnoredException.addIgnoredException("NoAvailableServersException");
client1.invoke(() -> {
- ClientCache cache = new ClientCacheFactory(createClientProperties("super-user", "1234567"))
- .setPoolSubscriptionEnabled(true).addPoolServer("localhost", serverPort).create();
+ ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
ClientRegionFactory factory = cache.createClientRegionFactory(ClientRegionShortcut.PROXY);
factory.addCacheListener(new CacheListenerAdapter() {
@@ -177,8 +180,8 @@ public class PDXPostProcessorDUnitTest extends AbstractSecureServerDUnitTest {
});
client2.invoke(() -> {
- ClientCache cache = createClientCache("dataUser", "1234567", serverPort);
- Region region = cache.getRegion(REGION_NAME);
+ ClientCache cache = createClientCache("dataUser", "1234567", server.getPort());
+ Region region = createProxyRegion(cache, REGION_NAME);
// put in a value that's a domain object
region.put("key1", new SimpleClass(1, (byte) 1));
region.put("key2", BYTES);
@@ -191,13 +194,12 @@ public class PDXPostProcessorDUnitTest extends AbstractSecureServerDUnitTest {
assertEquals(pp.getCount(), 2);
}
- @Category(FlakyTest.class) // GEODE-1719
@Test
public void testGfshCommand() {
// have client2 input some domain data into the region
client2.invoke(() -> {
- ClientCache cache = createClientCache("super-user", "1234567", serverPort);
- Region region = cache.getRegion(REGION_NAME);
+ ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
+ Region region = createProxyRegion(cache, REGION_NAME);
// put in a value that's a domain object
region.put("key1", new SimpleClass(1, (byte) 1));
// put in a byte value
@@ -205,39 +207,22 @@ public class PDXPostProcessorDUnitTest extends AbstractSecureServerDUnitTest {
});
client1.invoke(() -> {
- CliUtil.isGfshVM = true;
- String shellId = getClass().getSimpleName();
- HeadlessGfsh gfsh = new HeadlessGfsh(shellId, 30, "gfsh_files");
-
- // connect to the jmx server
- final CommandStringBuilder connectCommand = new CommandStringBuilder(CliStrings.CONNECT);
- connectCommand.addOption(CliStrings.CONNECT__USERNAME, "dataUser");
- connectCommand.addOption(CliStrings.CONNECT__PASSWORD, "1234567");
-
- String endpoint = "localhost[" + jmxPort + "]";
- connectCommand.addOption(CliStrings.CONNECT__JMX_MANAGER, endpoint);
-
- gfsh.executeCommand(connectCommand.toString());
- CommandResult result = (CommandResult) gfsh.getResult();
+ GfshShellConnectionRule gfsh = new GfshShellConnectionRule();
+ gfsh.secureConnectAndVerify(server.getJmxPort(), GfshShellConnectionRule.PortType.jmxManger,
+ "dataUser", "1234567");
// get command
- gfsh.executeCommand("get --key=key1 --region=AuthRegion");
- result = (CommandResult) gfsh.getResult();
- assertEquals(result.getStatus(), Status.OK);
+ CommandResult result = gfsh.executeAndVerifyCommand("get --key=key1 --region=AuthRegion");
if (pdxPersistent)
- assertTrue(result.getContent().toString()
- .contains("org.apache.geode.pdx.internal.PdxInstanceImpl"));
+ assertThat(gfsh.getGfshOutput().contains("org.apache.geode.pdx.internal.PdxInstanceImpl"));
else
- assertTrue(result.getContent().toString().contains("SimpleClass"));
+ assertThat(gfsh.getGfshOutput()).contains("SimpleClass");
- gfsh.executeCommand("get --key=key2 --region=AuthRegion");
- result = (CommandResult) gfsh.getResult();
- assertEquals(result.getStatus(), Status.OK);
+ result = gfsh.executeAndVerifyCommand("get --key=key2 --region=AuthRegion");
assertTrue(result.getContent().toString().contains("byte[]"));
- gfsh.executeCommand("query --query=\"select * from /AuthRegion\"");
- result = (CommandResult) gfsh.getResult();
- System.out.println("gfsh result: " + result);
+ gfsh.executeAndVerifyCommand("query --query=\"select * from /AuthRegion\"");
+ gfsh.close();
});
PDXPostProcessor pp =
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
index dd913c2..b977b50 100644
--- a/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
@@ -61,7 +61,6 @@ public class PeerAuthenticatorDUnitTest {
server2.invoke(() -> {
ServerStarterRule serverStarter = new ServerStarterRule();
- serverStarter.before();
LocatorServerStartupRule.serverStarter = serverStarter;
assertThatThrownBy(() -> serverStarter.startServer(server2Props, locatorPort))
.isInstanceOf(GemFireSecurityException.class).hasMessageContaining("Invalid user name");
http://git-wip-us.apache.org/repos/asf/geode/blob/d44db8b8/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
index 9cfb5ec..f3d974e 100644
--- a/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
@@ -62,7 +62,6 @@ public class PeerSecurityWithEmbeddedLocatorDUnitTest {
VM server2 = getHost(0).getVM(2);
server2.invoke(() -> {
ServerStarterRule serverStarter = new ServerStarterRule();
- serverStarter.before();
LocatorServerStartupRule.serverStarter = serverStarter;
assertThatThrownBy(() -> serverStarter.startServer(server2Props, locatorPort))
.isInstanceOf(GemFireSecurityException.class)
@@ -94,7 +93,6 @@ public class PeerSecurityWithEmbeddedLocatorDUnitTest {
VM server2 = getHost(0).getVM(2);
server2.invoke(() -> {
ServerStarterRule serverStarter = new ServerStarterRule();
- serverStarter.before();
LocatorServerStartupRule.serverStarter = serverStarter;
assertThatThrownBy(() -> serverStarter.startServer(server2Props, locatorPort))
.isInstanceOf(GemFireSecurityException.class).hasMessageContaining("Invalid user name");