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