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 2016/07/11 15:19:55 UTC
incubator-geode git commit: GEODE-1571: security code tidy up.
Repository: incubator-geode
Updated Branches:
refs/heads/develop 8c71023b7 -> f49ee2e18
GEODE-1571: security code tidy up.
* add close method in post processor
* have GeodeSecurityUtil.close close more resources.
* deprecate the old security api
* Ignore internal message tests
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/f49ee2e1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/f49ee2e1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/f49ee2e1
Branch: refs/heads/develop
Commit: f49ee2e182c9c4a85b24c989d09e7cad5d83c857
Parents: 8c71023
Author: Jinmei Liao <ji...@pivotal.io>
Authored: Fri Jul 8 14:24:34 2016 -0700
Committer: Jinmei Liao <ji...@pivotal.io>
Committed: Mon Jul 11 08:17:49 2016 -0700
----------------------------------------------------------------------
.../cache/operations/OperationContext.java | 2 +
.../internal/cache/GemFireCacheImpl.java | 77 +++++++++++++++++---
.../internal/security/GeodeSecurityUtil.java | 13 +++-
.../internal/SystemManagementService.java | 8 +-
.../gemfire/security/AccessControl.java | 2 +
.../gemfire/security/Authenticator.java | 8 +-
.../gemfire/security/PostProcessor.java | 27 ++++++-
.../gemfire/security/SecurityManager.java | 13 ++++
.../templates/SampleSecurityManager.java | 7 +-
.../GeodeSecurityUtilWithIniFileJUnitTest.java | 7 --
...tGetClientPRMetaDataAuthDistributedTest.java | 2 +-
...IntegratedClientSizeAuthDistributedTest.java | 4 +
...edSecurityCacheLifecycleDistributedTest.java | 37 +++-------
13 files changed, 145 insertions(+), 62 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/main/java/com/gemstone/gemfire/cache/operations/OperationContext.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/operations/OperationContext.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/operations/OperationContext.java
index a8970bf..e1c04ad 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/operations/OperationContext.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/operations/OperationContext.java
@@ -27,6 +27,8 @@ package com.gemstone.gemfire.cache.operations;
* Implementations of this interface are <b>not</b> expected to be thread-safe.
*
* @since GemFire 5.5
+ *
+ * @deprecated since Geode1.0, use {@link com.gemstone.gemfire.security.GeodePermission} instead
*/
public abstract class OperationContext{
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/GemFireCacheImpl.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/GemFireCacheImpl.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/GemFireCacheImpl.java
index 953e023..a9e1631 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/GemFireCacheImpl.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/GemFireCacheImpl.java
@@ -71,6 +71,9 @@ import java.util.concurrent.atomic.AtomicReference;
import javax.naming.Context;
+import com.sun.jna.Native;
+import com.sun.jna.Platform;
+import org.apache.geode.redis.GeodeRedisServer;
import org.apache.logging.log4j.Logger;
import com.gemstone.gemfire.CancelCriterion;
@@ -81,13 +84,44 @@ import com.gemstone.gemfire.InternalGemFireError;
import com.gemstone.gemfire.LogWriter;
import com.gemstone.gemfire.SystemFailure;
import com.gemstone.gemfire.admin.internal.SystemMemberCacheEventProcessor;
-import com.gemstone.gemfire.cache.*;
+import com.gemstone.gemfire.cache.AttributesFactory;
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.CacheClosedException;
+import com.gemstone.gemfire.cache.CacheException;
+import com.gemstone.gemfire.cache.CacheExistsException;
+import com.gemstone.gemfire.cache.CacheRuntimeException;
+import com.gemstone.gemfire.cache.CacheTransactionManager;
+import com.gemstone.gemfire.cache.CacheWriterException;
+import com.gemstone.gemfire.cache.CacheXmlException;
+import com.gemstone.gemfire.cache.DataPolicy;
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.DiskStore;
+import com.gemstone.gemfire.cache.DiskStoreFactory;
+import com.gemstone.gemfire.cache.DynamicRegionFactory;
+import com.gemstone.gemfire.cache.EvictionAction;
+import com.gemstone.gemfire.cache.EvictionAttributes;
+import com.gemstone.gemfire.cache.GatewayException;
+import com.gemstone.gemfire.cache.Operation;
+import com.gemstone.gemfire.cache.PartitionAttributesFactory;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionAttributes;
+import com.gemstone.gemfire.cache.RegionDestroyedException;
+import com.gemstone.gemfire.cache.RegionExistsException;
+import com.gemstone.gemfire.cache.RegionFactory;
+import com.gemstone.gemfire.cache.RegionService;
+import com.gemstone.gemfire.cache.RegionShortcut;
+import com.gemstone.gemfire.cache.Scope;
import com.gemstone.gemfire.cache.TimeoutException;
import com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueue;
import com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueueFactory;
import com.gemstone.gemfire.cache.asyncqueue.internal.AsyncEventQueueFactoryImpl;
import com.gemstone.gemfire.cache.asyncqueue.internal.AsyncEventQueueImpl;
-import com.gemstone.gemfire.cache.client.*;
+import com.gemstone.gemfire.cache.client.ClientCache;
+import com.gemstone.gemfire.cache.client.ClientRegionFactory;
+import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
+import com.gemstone.gemfire.cache.client.Pool;
+import com.gemstone.gemfire.cache.client.PoolFactory;
+import com.gemstone.gemfire.cache.client.PoolManager;
import com.gemstone.gemfire.cache.client.internal.ClientMetadataService;
import com.gemstone.gemfire.cache.client.internal.ClientRegionFactoryImpl;
import com.gemstone.gemfire.cache.client.internal.PoolImpl;
@@ -105,13 +139,34 @@ import com.gemstone.gemfire.cache.wan.GatewayReceiver;
import com.gemstone.gemfire.cache.wan.GatewayReceiverFactory;
import com.gemstone.gemfire.cache.wan.GatewaySender;
import com.gemstone.gemfire.cache.wan.GatewaySenderFactory;
-import com.gemstone.gemfire.distributed.*;
-import com.gemstone.gemfire.distributed.internal.*;
+import com.gemstone.gemfire.distributed.DistributedLockService;
+import com.gemstone.gemfire.distributed.DistributedMember;
+import com.gemstone.gemfire.distributed.DistributedSystem;
+import com.gemstone.gemfire.distributed.DistributedSystemDisconnectedException;
+import com.gemstone.gemfire.distributed.Locator;
+import com.gemstone.gemfire.distributed.internal.CacheTime;
+import com.gemstone.gemfire.distributed.internal.DM;
+import com.gemstone.gemfire.distributed.internal.DistributionAdvisee;
+import com.gemstone.gemfire.distributed.internal.DistributionAdvisor;
import com.gemstone.gemfire.distributed.internal.DistributionAdvisor.Profile;
+import com.gemstone.gemfire.distributed.internal.DistributionConfig;
+import com.gemstone.gemfire.distributed.internal.DistributionManager;
+import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
+import com.gemstone.gemfire.distributed.internal.InternalLocator;
+import com.gemstone.gemfire.distributed.internal.PooledExecutorWithDMStats;
+import com.gemstone.gemfire.distributed.internal.ReplyException;
+import com.gemstone.gemfire.distributed.internal.ReplyProcessor21;
+import com.gemstone.gemfire.distributed.internal.ResourceEvent;
+import com.gemstone.gemfire.distributed.internal.ResourceEventsListener;
+import com.gemstone.gemfire.distributed.internal.ServerLocation;
import com.gemstone.gemfire.distributed.internal.locks.DLockService;
import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
import com.gemstone.gemfire.i18n.LogWriterI18n;
-import com.gemstone.gemfire.internal.*;
+import com.gemstone.gemfire.internal.Assert;
+import com.gemstone.gemfire.internal.ClassPathLoader;
+import com.gemstone.gemfire.internal.JarDeployer;
+import com.gemstone.gemfire.internal.SocketCreator;
+import com.gemstone.gemfire.internal.SystemTimer;
import com.gemstone.gemfire.internal.cache.control.InternalResourceManager;
import com.gemstone.gemfire.internal.cache.control.InternalResourceManager.ResourceType;
import com.gemstone.gemfire.internal.cache.control.ResourceAdvisor;
@@ -129,7 +184,12 @@ import com.gemstone.gemfire.internal.cache.persistence.PersistentMemberID;
import com.gemstone.gemfire.internal.cache.persistence.PersistentMemberManager;
import com.gemstone.gemfire.internal.cache.persistence.query.TemporaryResultSetFactory;
import com.gemstone.gemfire.internal.cache.snapshot.CacheSnapshotServiceImpl;
-import com.gemstone.gemfire.internal.cache.tier.sockets.*;
+import com.gemstone.gemfire.internal.cache.tier.sockets.AcceptorImpl;
+import com.gemstone.gemfire.internal.cache.tier.sockets.CacheClientNotifier;
+import com.gemstone.gemfire.internal.cache.tier.sockets.CacheClientProxy;
+import com.gemstone.gemfire.internal.cache.tier.sockets.ClientHealthMonitor;
+import com.gemstone.gemfire.internal.cache.tier.sockets.ClientProxyMembershipID;
+import com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection;
import com.gemstone.gemfire.internal.cache.wan.AbstractGatewaySender;
import com.gemstone.gemfire.internal.cache.wan.GatewaySenderAdvisor;
import com.gemstone.gemfire.internal.cache.wan.WANServiceProvider;
@@ -147,7 +207,6 @@ import com.gemstone.gemfire.internal.logging.LoggingThreadGroup;
import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
import com.gemstone.gemfire.internal.offheap.MemoryAllocator;
import com.gemstone.gemfire.internal.process.ClusterConfigurationNotAvailableException;
-import com.gemstone.gemfire.internal.security.GeodeSecurityUtil;
import com.gemstone.gemfire.internal.sequencelog.SequenceLoggerImpl;
import com.gemstone.gemfire.internal.tcp.ConnectionTable;
import com.gemstone.gemfire.internal.util.concurrent.FutureResult;
@@ -167,9 +226,6 @@ import com.gemstone.gemfire.pdx.internal.AutoSerializableManager;
import com.gemstone.gemfire.pdx.internal.PdxInstanceFactoryImpl;
import com.gemstone.gemfire.pdx.internal.PdxInstanceImpl;
import com.gemstone.gemfire.pdx.internal.TypeRegistry;
-import org.apache.geode.redis.GeodeRedisServer;
-import com.sun.jna.Native;
-import com.sun.jna.Platform;
// @todo somebody Come up with more reasonable values for {@link #DEFAULT_LOCK_TIMEOUT}, etc.
/**
@@ -1899,7 +1955,6 @@ public class GemFireCacheImpl implements InternalCache, ClientCache, HasCachePer
return;
}
final boolean isDebugEnabled = logger.isDebugEnabled();
- GeodeSecurityUtil.close();
synchronized (GemFireCacheImpl.class) {
// bugfix for bug 36512 "GemFireCache.close is not thread safe"
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/main/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtil.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtil.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtil.java
index 9ae658c..4f92dee 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtil.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtil.java
@@ -340,11 +340,16 @@ public class GeodeSecurityUtil {
}
public static void close() {
- if (securityManager != null) {
- securityManager.close();
- securityManager = null;
- }
+ if (securityManager != null) {
+ securityManager.close();
+ securityManager = null;
+ }
+ if (postProcessor != null) {
+ postProcessor.close();
+ postProcessor = null;
+ }
+ ThreadContext.remove();
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/main/java/com/gemstone/gemfire/management/internal/SystemManagementService.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/SystemManagementService.java b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/SystemManagementService.java
index e9778d9..dbdd575 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/SystemManagementService.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/SystemManagementService.java
@@ -20,9 +20,12 @@ import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
+
import javax.management.Notification;
import javax.management.ObjectName;
+import org.apache.logging.log4j.Logger;
+
import com.gemstone.gemfire.CancelException;
import com.gemstone.gemfire.cache.Cache;
import com.gemstone.gemfire.cache.execute.FunctionService;
@@ -54,9 +57,6 @@ import com.gemstone.gemfire.management.internal.beans.ManagementAdapter;
import com.gemstone.gemfire.management.membership.MembershipEvent;
import com.gemstone.gemfire.management.membership.MembershipListener;
-import org.apache.logging.log4j.Logger;
-import org.apache.shiro.util.ThreadContext;
-
/**
* This is the concrete implementation of ManagementService
* which is the gateway to various JMX operations over a GemFire
@@ -273,7 +273,7 @@ public final class SystemManagementService extends BaseManagementService {
}
// clean out Shiro's thread local content
- ThreadContext.remove();
+ GeodeSecurityUtil.close();
getGemFireCacheImpl().getJmxManagerAdvisor().broadcastChange();
instances.remove(cache);
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/main/java/com/gemstone/gemfire/security/AccessControl.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/security/AccessControl.java b/geode-core/src/main/java/com/gemstone/gemfire/security/AccessControl.java
index 4faff72..3d22864 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/security/AccessControl.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/security/AccessControl.java
@@ -38,6 +38,8 @@ import com.gemstone.gemfire.distributed.DistributedMember;
* <code>authorizeOperation</code> method invoked before/after each operation.
*
* @since GemFire 5.5
+ *
+ * @deprecated since Geode 1.0, use {@link SecurityManager} instead
*/
public interface AccessControl extends CacheCallback {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/main/java/com/gemstone/gemfire/security/Authenticator.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/security/Authenticator.java b/geode-core/src/main/java/com/gemstone/gemfire/security/Authenticator.java
index 747aa5d..f66f092 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/security/Authenticator.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/security/Authenticator.java
@@ -17,14 +17,14 @@
package com.gemstone.gemfire.security;
+import java.security.Principal;
+import java.util.Properties;
+
import com.gemstone.gemfire.LogWriter;
import com.gemstone.gemfire.cache.CacheCallback;
import com.gemstone.gemfire.distributed.DistributedMember;
import com.gemstone.gemfire.distributed.DistributedSystem;
-import java.security.Principal;
-import java.util.Properties;
-
/**
* Specifies the mechanism to verify credentials for a client or peer.
* Implementations should register name of the static creation function as the
@@ -41,6 +41,8 @@ import java.util.Properties;
* a zero argument function.
*
* @since GemFire 5.5
+ *
+ * @deprecated since Geode 1.0, use {@link SecurityManager} instead
*/
public interface Authenticator extends CacheCallback {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/main/java/com/gemstone/gemfire/security/PostProcessor.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/security/PostProcessor.java b/geode-core/src/main/java/com/gemstone/gemfire/security/PostProcessor.java
index 1331081..f522896 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/security/PostProcessor.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/security/PostProcessor.java
@@ -20,7 +20,32 @@ package com.gemstone.gemfire.security;
import java.security.Principal;
import java.util.Properties;
+/**
+ *
+ * @since Geode 1.0
+ */
public interface PostProcessor {
- void init(Properties securityProps);
+
+ /**
+ * Given the security props of the server, properly initialize the post processor for the server.
+ * Initialized at server startup.
+ * @param securityProps
+ */
+ default void init(Properties securityProps) {}
+
+ /**
+ *
+ * @param principal
+ * @param regionName
+ * @param key
+ * @param value
+ * @return
+ */
Object processRegionValue(Principal principal, String regionName, Object key, Object value);
+
+ /**
+ * Give the implementation a chance to close the resources used.
+ * Called when cache is closed.
+ */
+ default void close() {}
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/main/java/com/gemstone/gemfire/security/SecurityManager.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/security/SecurityManager.java b/geode-core/src/main/java/com/gemstone/gemfire/security/SecurityManager.java
index eff27ae..580ddf3 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/security/SecurityManager.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/security/SecurityManager.java
@@ -20,8 +20,18 @@ package com.gemstone.gemfire.security;
import java.security.Principal;
import java.util.Properties;
+/**
+ * User implementation of a authentication/authorization logic for Integrated Security.
+ * The implementation will guard client/server, jmx, pulse, gfsh commands
+ *
+ * @since Geode1.0
+ */
public interface SecurityManager {
+ /**
+ * called at cache start up to initialize it.
+ * @param securityProps
+ */
default void init(Properties securityProps) {}
Principal authenticate(Properties props) throws AuthenticationFailedException;
@@ -30,5 +40,8 @@ public interface SecurityManager {
return true;
}
+ /**
+ * called at cache close
+ */
default void close() {}
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/main/java/com/gemstone/gemfire/security/templates/SampleSecurityManager.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/security/templates/SampleSecurityManager.java b/geode-core/src/main/java/com/gemstone/gemfire/security/templates/SampleSecurityManager.java
index 59b15a6..6f904c8 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/security/templates/SampleSecurityManager.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/security/templates/SampleSecurityManager.java
@@ -40,16 +40,13 @@ import org.apache.commons.io.IOUtils;
import org.apache.shiro.authz.Permission;
import com.gemstone.gemfire.management.internal.security.ResourceConstants;
-import com.gemstone.gemfire.security.AccessControl;
import com.gemstone.gemfire.security.AuthenticationFailedException;
-import com.gemstone.gemfire.security.Authenticator;
-import com.gemstone.gemfire.security.SecurityManager;
import com.gemstone.gemfire.security.GeodePermission;
import com.gemstone.gemfire.security.NotAuthorizedException;
+import com.gemstone.gemfire.security.SecurityManager;
/**
- * This class provides a sample implementation for authentication and authorization via the {@link AccessControl}
- * and {@link Authenticator} interfaces.
+ * This class provides a sample implementation for authentication and authorization via the {@link SecurityManager}
*
* In order to use it, a Geode member must be started with the following properties:
* <p/>
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/GeodeSecurityUtilWithIniFileJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/GeodeSecurityUtilWithIniFileJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/GeodeSecurityUtilWithIniFileJUnitTest.java
index f71b0f8..6a3d382 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/GeodeSecurityUtilWithIniFileJUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/GeodeSecurityUtilWithIniFileJUnitTest.java
@@ -22,8 +22,6 @@ import static org.assertj.core.api.Assertions.*;
import java.util.Properties;
-import org.apache.shiro.util.ThreadContext;
-import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -47,11 +45,6 @@ public class GeodeSecurityUtilWithIniFileJUnitTest {
GeodeSecurityUtil.initSecurity(props);
}
- @AfterClass
- public static void afterClass(){
- ThreadContext.remove();
- }
-
@Test
public void testRoot(){
GeodeSecurityUtil.login("root", "secret");
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientGetClientPRMetaDataAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientGetClientPRMetaDataAuthDistributedTest.java b/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientGetClientPRMetaDataAuthDistributedTest.java
index 2823829..6a5f963 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientGetClientPRMetaDataAuthDistributedTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientGetClientPRMetaDataAuthDistributedTest.java
@@ -36,7 +36,7 @@ public class IntegratedClientGetClientPRMetaDataAuthDistributedTest
@Test
@Ignore("This is not a supported client message")
- // this would fail sporatically because ServerConnection.isInternalMessage would return true for this 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", () -> {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientSizeAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientSizeAuthDistributedTest.java b/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientSizeAuthDistributedTest.java
index e302177..b0a1fa2 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientSizeAuthDistributedTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientSizeAuthDistributedTest.java
@@ -17,6 +17,7 @@
package com.gemstone.gemfire.security;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -31,6 +32,9 @@ import com.gemstone.gemfire.test.junit.categories.SecurityTest;
public class IntegratedClientSizeAuthDistributedTest extends AbstractIntegratedClientAuthDistributedTest {
@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(() -> {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f49ee2e1/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedSecurityCacheLifecycleDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedSecurityCacheLifecycleDistributedTest.java b/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedSecurityCacheLifecycleDistributedTest.java
index 7649f89..6634f17 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedSecurityCacheLifecycleDistributedTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedSecurityCacheLifecycleDistributedTest.java
@@ -23,16 +23,12 @@ import static org.assertj.core.api.Assertions.*;
import java.security.Principal;
import java.util.Properties;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionShortcut;
-import com.gemstone.gemfire.cache.client.ClientCache;
-import com.gemstone.gemfire.cache.client.ClientCacheFactory;
-import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
import com.gemstone.gemfire.cache.server.CacheServer;
-import com.gemstone.gemfire.distributed.internal.InternalLocator;
import com.gemstone.gemfire.internal.AvailablePort;
import com.gemstone.gemfire.management.internal.security.JSONAuthorization;
-import com.gemstone.gemfire.security.templates.UserPasswordAuthInit;
import com.gemstone.gemfire.test.dunit.DistributedTestUtils;
import com.gemstone.gemfire.test.dunit.Host;
import com.gemstone.gemfire.test.dunit.NetworkUtils;
@@ -41,11 +37,6 @@ import com.gemstone.gemfire.test.dunit.cache.internal.JUnit4CacheTestCase;
import com.gemstone.gemfire.test.junit.categories.DistributedTest;
import com.gemstone.gemfire.test.junit.categories.SecurityTest;
-import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.mockito.Spy;
-
@Category({DistributedTest.class, SecurityTest.class})
public class IntegratedSecurityCacheLifecycleDistributedTest extends JUnit4CacheTestCase {
@@ -80,6 +71,9 @@ public class IntegratedSecurityCacheLifecycleDistributedTest extends JUnit4Cache
properties.setProperty(MCAST_PORT, "0");
properties.setProperty(SECURITY_MANAGER, SpySecurityManager.class.getName()+".create");
properties.setProperty(LOCATORS, locators);
+ properties.setProperty(JMX_MANAGER, "false");
+ properties.setProperty(JMX_MANAGER_PORT, "0");
+ properties.setProperty(JMX_MANAGER_START, "false");
properties.setProperty(USE_CLUSTER_CONFIGURATION, "false");
getSystem(properties);
@@ -92,15 +86,10 @@ public class IntegratedSecurityCacheLifecycleDistributedTest extends JUnit4Cache
@Test
public void initAndCloseTest () {
+ verifyInitCloseInvoked();
+
locator.invoke(() -> {
- verifyInitInvoked();
- });
- verifyInitInvoked();
- getCache().close();
- verifyCloseInvoked();
- locator.invoke(() -> {
- getCache().close();
- verifyCloseInvoked();
+ verifyInitCloseInvoked();
});
}
@@ -109,15 +98,12 @@ public class IntegratedSecurityCacheLifecycleDistributedTest extends JUnit4Cache
closeAllCache();
}
- private static void verifyInitInvoked() {
+ private void verifyInitCloseInvoked() {
assertThat(spySecurityManager.initInvoked).isEqualTo(1);
- }
-
- private static void verifyCloseInvoked() {
+ getCache().close();
assertThat(spySecurityManager.closeInvoked).isEqualTo(1);
}
-
public static class SpySecurityManager extends JSONAuthorization {
private static int initInvoked = 0;
@@ -130,7 +116,6 @@ public class IntegratedSecurityCacheLifecycleDistributedTest extends JUnit4Cache
@Override
public void init(final Properties securityProps) {
initInvoked++;
- super.init(securityProps);
}
@Override