incubator-geode git commit: GEODE-1247: unable to stop server using http connection

2016-11-15 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 58e0026c6 -> bb3db4a6a


GEODE-1247: unable to stop server using http connection


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/bb3db4a6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/bb3db4a6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/bb3db4a6

Branch: refs/heads/develop
Commit: bb3db4a6a6f5057c8d4ebb87961708d131e5b447
Parents: 58e0026
Author: Jinmei Liao 
Authored: Mon Nov 14 12:41:17 2016 -0800
Committer: Jinmei Liao 
Committed: Tue Nov 15 15:40:42 2016 -0600

--
 .../org/apache/geode/internal/util/IOUtils.java |  9 ++-
 .../web/shell/AbstractHttpOperationInvoker.java | 47 +++-
 .../commands/QueryNamesOverHttpDUnitTest.java   | 79 
 3 files changed, 112 insertions(+), 23 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bb3db4a6/geode-core/src/main/java/org/apache/geode/internal/util/IOUtils.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/util/IOUtils.java 
b/geode-core/src/main/java/org/apache/geode/internal/util/IOUtils.java
index 4c1cc5f..c1a1952 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/util/IOUtils.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/util/IOUtils.java
@@ -14,6 +14,9 @@
  */
 package org.apache.geode.internal.util;
 
+import org.apache.geode.internal.lang.ObjectUtils;
+import org.apache.geode.internal.lang.StringUtils;
+
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.Closeable;
@@ -25,9 +28,6 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.ObjectStreamClass;
 
-import org.apache.geode.internal.lang.ObjectUtils;
-import org.apache.geode.internal.lang.StringUtils;
-
 /**
  * Reusable Input/Output operation utility methods.
  * 
@@ -168,7 +168,8 @@ public abstract class IOUtils {
 ObjectInputStream objIn = null;
 
 try {
-  objIn = new ClassLoaderObjectInputStream(new 
ByteArrayInputStream(objBytes), loader);
+  ByteArrayInputStream bis = new ByteArrayInputStream(objBytes);
+  objIn = new ClassLoaderObjectInputStream(bis, loader);
   return objIn.readObject();
 } finally {
   close(objIn);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bb3db4a6/geode-core/src/main/java/org/apache/geode/management/internal/web/shell/AbstractHttpOperationInvoker.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/web/shell/AbstractHttpOperationInvoker.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/web/shell/AbstractHttpOperationInvoker.java
index 25eee82..fa05248 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/web/shell/AbstractHttpOperationInvoker.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/web/shell/AbstractHttpOperationInvoker.java
@@ -15,23 +15,6 @@
 
 package org.apache.geode.management.internal.web.shell;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URI;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import javax.management.ObjectName;
-import javax.management.QueryExp;
-
 import org.apache.geode.internal.GemFireVersion;
 import org.apache.geode.internal.lang.StringUtils;
 import org.apache.geode.internal.logging.LogService;
@@ -50,17 +33,35 @@ import 
org.apache.geode.management.internal.web.shell.support.HttpMBeanProxyFact
 import org.apache.geode.management.internal.web.util.UriUtils;
 import org.apache.geode.security.AuthenticationFailedException;
 import org.apache.geode.security.NotAuthorizedException;
-
 import org.apache.logging.log4j.Logger;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.http.client.ClientHttpResponse;
 import org.springframework.http.client.SimpleClientHttpRequestFactory;
+import org.springframework.http.converter.HttpMessageConverter;
+import 
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.ResponseErrorHandler;
 import 

incubator-geode git commit: GEODE-1955: properly disconnect gfsh session so that it won't leave heartbeat thread around to pollute other tests

2016-11-15 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 0c9002b20 -> 58e0026c6


GEODE-1955: properly disconnect gfsh session so that it won't leave heartbeat 
thread around to pollute other tests

* fix the test so that it truely tests the jmx ssl


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/58e0026c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/58e0026c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/58e0026c

Branch: refs/heads/develop
Commit: 58e0026c6dda077fbcedea1289993f5d36b67a74
Parents: 0c9002b
Author: Jinmei Liao 
Authored: Thu Nov 10 14:30:47 2016 -0800
Committer: Jinmei Liao 
Committed: Tue Nov 15 15:38:26 2016 -0600

--
 .../internal/net/SSLConfigurationFactory.java   | 20 
 .../management/internal/JmxManagerAdvisee.java  | 15 --
 .../internal/cli/shell/JmxOperationInvoker.java | 50 ++--
 .../ConnectToLocatorSSLDUnitTest.java   | 45 ++
 .../dunit/rules/GfshShellConnectionRule.java|  1 +
 5 files changed, 70 insertions(+), 61 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/58e0026c/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java
 
b/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java
index 76fb041..3731d4d 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java
@@ -15,18 +15,17 @@
 
 package org.apache.geode.internal.net;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
 import org.apache.commons.lang.ArrayUtils;
-
 import org.apache.commons.lang.StringUtils;
 import org.apache.geode.GemFireConfigException;
 import org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.internal.admin.SSLConfig;
 import org.apache.geode.internal.security.SecurableCommunicationChannel;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
 public class SSLConfigurationFactory {
 
   private static SSLConfigurationFactory instance = new 
SSLConfigurationFactory();
@@ -149,7 +148,7 @@ public class SSLConfigurationFactory {
   private SSLConfig createSSLConfig(final SecurableCommunicationChannel 
sslEnabledComponent) {
 SSLConfig sslConfig = new SSLConfig();
 sslConfig.setCiphers(getDistributionConfig().getSSLCiphers());
-
sslConfig.setEnabled(determineIfSSLEnabledForSSLComponent(sslEnabledComponent));
+sslConfig.setEnabled(isSSLEnabledForComponent(getDistributionConfig(), 
sslEnabledComponent));
 sslConfig.setKeystore(getDistributionConfig().getSSLKeyStore());
 
sslConfig.setKeystorePassword(getDistributionConfig().getSSLKeyStorePassword());
 sslConfig.setKeystoreType(getDistributionConfig().getSSLKeyStoreType());
@@ -161,18 +160,17 @@ public class SSLConfigurationFactory {
 return sslConfig;
   }
 
-  private boolean determineIfSSLEnabledForSSLComponent(
+  public static boolean isSSLEnabledForComponent(DistributionConfig dc,
   final SecurableCommunicationChannel sslEnabledComponent) {
-if 
(ArrayUtils.contains(getDistributionConfig().getSecurableCommunicationChannels(),
+if (ArrayUtils.contains(dc.getSecurableCommunicationChannels(),
 SecurableCommunicationChannel.NONE)) {
   return false;
 }
-if 
(ArrayUtils.contains(getDistributionConfig().getSecurableCommunicationChannels(),
+if (ArrayUtils.contains(dc.getSecurableCommunicationChannels(),
 SecurableCommunicationChannel.ALL)) {
   return true;
 }
-return 
ArrayUtils.contains(getDistributionConfig().getSecurableCommunicationChannels(),
-sslEnabledComponent) ? true : false;
+return ArrayUtils.contains(dc.getSecurableCommunicationChannels(), 
sslEnabledComponent);
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/58e0026c/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerAdvisee.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerAdvisee.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerAdvisee.java
index 0467c48..5952c4c 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerAdvisee.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerAdvisee.java
@@ -15,10 +15,17 @@

incubator-geode git commit: GEODE-1993: postprocess region/key in developer rest api

2016-11-10 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop e584c4e65 -> bd229d768


GEODE-1993: postprocess region/key in developer rest api

* This closes #276


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/bd229d76
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/bd229d76
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/bd229d76

Branch: refs/heads/develop
Commit: bd229d7681376a11ba2e37747e48844ffe65584c
Parents: e584c4e
Author: Kevin Duling 
Authored: Fri Oct 28 13:27:56 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Nov 10 14:59:47 2016 -0800

--
 .../web/RestSecurityPostProcessorTest.java  | 188 +++
 .../rest/internal/web/controllers/Customer.java |  26 ++-
 .../web/controllers/RedactingPostProcessor.java |  67 +++
 .../RestAPIsQueryAndFEJUnitTest.java|  61 +++---
 .../cache/query/internal/CompiledValue.java |   9 +-
 .../cache/query/internal/DefaultQuery.java  |  39 +++-
 .../security/IntegratedSecurityService.java |   4 +-
 .../apache/geode/security/PostProcessor.java|   2 +-
 .../PdxLocalQueryVersionedClassDUnitTest.java   |   5 +-
 .../ClientServerFunctionExecutionDUnitTest.java |  19 +-
 .../internal/cache/functions/TestFunction.java  |   1 -
 .../security/NoShowValue1PostProcessor.java |   4 -
 .../apache/geode/security/PDXPostProcessor.java |  10 +-
 .../web/controllers/AbstractBaseController.java |  37 ++--
 .../controllers/FunctionAccessController.java   |  15 +-
 .../web/controllers/PdxBasedCrudController.java |  21 +--
 .../web/controllers/QueryAccessController.java  |  24 ++-
 .../web/security/RestSecurityService.java   |   8 +-
 .../rest/internal/web/util/JsonWriter.java  |  51 ++---
 19 files changed, 442 insertions(+), 149 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bd229d76/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java
new file mode 100644
index 000..72b589f
--- /dev/null
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java
@@ -0,0 +1,188 @@
+/*
+ * 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.rest.internal.web;
+
+import static 
org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_BIND_ADDRESS;
+import static 
org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_PORT;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
+import static 
org.apache.geode.distributed.ConfigurationProperties.START_DEV_REST_API;
+import static org.apache.geode.rest.internal.web.GeodeRestClient.getCode;
+import static 
org.apache.geode.rest.internal.web.GeodeRestClient.getContentType;
+import static org.apache.geode.rest.internal.web.GeodeRestClient.getJsonArray;
+import static org.apache.geode.rest.internal.web.GeodeRestClient.getJsonObject;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.geode.cache.Region;
+import org.apache.geode.cache.RegionShortcut;
+import org.apache.geode.internal.AvailablePortHelper;
+import org.apache.geode.rest.internal.web.controllers.Customer;
+import org.apache.geode.rest.internal.web.controllers.RedactingPostProcessor;
+import org.apache.geode.security.templates.SampleSecurityManager;
+import org.apache.geode.test.dunit.rules.ServerStarterRule;
+import org.apache.geode.test.junit.categories.IntegrationTest;
+import org.apache.geode.test.junit.categories.SecurityTest;
+import 

incubator-geode git commit: GEODE-2084 - When executing a rest api in a browser, the login page presented in the browser is not setting the username/password correctly

2016-11-10 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop df2f0c964 -> aac49f3f0


GEODE-2084 - When executing a rest api in a browser, the login page presented 
in the browser is not setting the username/password correctly

* Changed RestSecurityConfiguration to not call login(), which will bring up 
the browsers Authentication dialog instead.
* this closes #281


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/aac49f3f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/aac49f3f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/aac49f3f

Branch: refs/heads/develop
Commit: aac49f3f0c17c1e396e6dbe9fb84849bd6c9b2c6
Parents: df2f0c9
Author: Kevin Duling 
Authored: Thu Nov 10 10:44:37 2016 -0800
Committer: Jinmei Liao 
Committed: Thu Nov 10 14:39:13 2016 -0800

--
 .../rest/internal/web/security/RestSecurityConfiguration.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/aac49f3f/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
--
diff --git 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
index 3aa5622..f0491b7 100644
--- 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
+++ 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
@@ -56,7 +56,7 @@ public class RestSecurityConfiguration extends 
WebSecurityConfigurerAdapter {
 .authorizeRequests()
 .antMatchers("/ping", "/docs/**", "/swagger-ui.html", 
"/v2/api-docs/**",
 "/webjars/springfox-swagger-ui/**", "/swagger-resources/**")
-
.permitAll().anyRequest().authenticated().and().formLogin().and().csrf().disable();
+.permitAll().anyRequest().authenticated().and().csrf().disable();
 
 if (securityService.isIntegratedSecurity()) {
   http.httpBasic();



incubator-geode git commit: GEODE-1883: make auth-init optional

2016-11-09 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/feature/GEODE-1883 [created] d54080aa4


GEODE-1883: make auth-init optional

* Failed Tests:

CQClientAuthDunitTest. testPostProcess
ClientCQPostAuthorizationDUnitTest. testAllowCQForAllMultiusers
ClientCQPostAuthorizationDUnitTest. testAllowCQForAllMultiusersWithFailover
ClientCQPostAuthorizationDUnitTest. testDisallowCQForAllMultiusers
ClientCQPostAuthorizationDUnitTest. testDisallowCQForSomeMultiusers
ClientMultiUserAuthzDUnitTest. testOps1
ClientMultiUserAuthzDUnitTest. testOps2
ClientMultiUserAuthzDUnitTest. testOpsWithClientsInDifferentModes
MultiUserDurableCQAuthzDUnitTest. testCQForDurableClientsWithCloseKeepAliveFalse
MultiUserDurableCQAuthzDUnitTest. testCQForDurableClientsWithCloseKeepAliveTrue
MultiUserDurableCQAuthzDUnitTest. testCQForDurableClientsWithDefaultClose


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/d54080aa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/d54080aa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/d54080aa

Branch: refs/heads/feature/GEODE-1883
Commit: d54080aa48194e6861d1e463b6ab5e70c39a80e6
Parents: 5907e98
Author: Jinmei Liao 
Authored: Sun Oct 16 12:19:25 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Nov 9 08:16:09 2016 -0800

--
 .../cache/tier/sockets/CacheClientUpdater.java  | 67 -
 .../internal/cache/tier/sockets/HandShake.java  | 47 ++--
 .../geode/security/ClientAuthDUnitTest.java | 79 
 .../security/ClientAuthenticationTestCase.java  | 10 +--
 .../dunit/rules/LocatorServerStartupRule.java   |  8 +-
 5 files changed, 160 insertions(+), 51 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/d54080aa/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java
index b4a6bed..324e240 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java
@@ -15,21 +15,65 @@
 
 package org.apache.geode.internal.cache.tier.sockets;
 
-import org.apache.geode.*;
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InterruptedIOException;
+import java.io.OutputStream;
+import java.net.ConnectException;
+import java.net.Socket;
+import java.net.SocketException;
+import java.nio.ByteBuffer;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.net.ssl.SSLException;
+
+import org.apache.logging.log4j.Logger;
+
+import org.apache.geode.CancelException;
+import org.apache.geode.DataSerializer;
+import org.apache.geode.InvalidDeltaException;
+import org.apache.geode.StatisticDescriptor;
+import org.apache.geode.Statistics;
+import org.apache.geode.StatisticsType;
+import org.apache.geode.StatisticsTypeFactory;
+import org.apache.geode.SystemFailure;
 import org.apache.geode.cache.EntryNotFoundException;
 import org.apache.geode.cache.InterestResultPolicy;
 import org.apache.geode.cache.Operation;
 import org.apache.geode.cache.RegionDestroyedException;
 import org.apache.geode.cache.client.ServerRefusedConnectionException;
-import org.apache.geode.cache.client.internal.*;
+import org.apache.geode.cache.client.internal.ClientUpdater;
+import org.apache.geode.cache.client.internal.Endpoint;
+import org.apache.geode.cache.client.internal.EndpointManager;
+import org.apache.geode.cache.client.internal.GetEventValueOp;
+import org.apache.geode.cache.client.internal.PoolImpl;
+import org.apache.geode.cache.client.internal.QueueManager;
 import org.apache.geode.cache.query.internal.cq.CqService;
 import org.apache.geode.distributed.DistributedSystem;
-import org.apache.geode.distributed.internal.*;
+import org.apache.geode.distributed.internal.DistributionConfig;
+import org.apache.geode.distributed.internal.DistributionManager;
+import org.apache.geode.distributed.internal.DistributionStats;
+import org.apache.geode.distributed.internal.InternalDistributedSystem;
 import 
org.apache.geode.distributed.internal.InternalDistributedSystem.DisconnectListener;
+import org.apache.geode.distributed.internal.ServerLocation;
 import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import 

incubator-geode git commit: GEODE-2014: explicitly declare spring-web as a direct dependency rather than a transitive one.

2016-11-09 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop a515ee06d -> 5907e988b


GEODE-2014: explicitly declare spring-web as a direct dependency rather than a 
transitive one.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/5907e988
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/5907e988
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/5907e988

Branch: refs/heads/develop
Commit: 5907e988bfa56550cb8faae789dec564c3ed5d43
Parents: a515ee0
Author: Jinmei Liao 
Authored: Tue Nov 8 14:29:26 2016 -0800
Committer: Jinmei Liao 
Committed: Wed Nov 9 08:13:45 2016 -0800

--
 geode-web-api/build.gradle | 1 +
 1 file changed, 1 insertion(+)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5907e988/geode-web-api/build.gradle
--
diff --git a/geode-web-api/build.gradle b/geode-web-api/build.gradle
index 9b15516..f74b86f 100755
--- a/geode-web-api/build.gradle
+++ b/geode-web-api/build.gradle
@@ -42,6 +42,7 @@ dependencies {
   compile 'org.springframework.security:spring-security-core:' + 
project.'spring-security.version'
   compile 'org.springframework.security:spring-security-web:' + 
project.'spring-security.version'
   compile 'org.springframework.security:spring-security-config:' + 
project.'spring-security.version'
+  compile 'org.springframework:spring-web:' + project.'springframework.version'
   compile 'org.springframework:spring-webmvc:' + 
project.'springframework.version'
   compile('org.springframework.hateoas:spring-hateoas:' + 
project.'spring-hateoas.version') {
 exclude module: 'aopalliance'



incubator-geode git commit: GEODE-1570: add a test to verify rest security with SSL.

2016-11-09 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 08bbbe261 -> a515ee06d


GEODE-1570: add a test to verify rest security with SSL.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/a515ee06
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/a515ee06
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/a515ee06

Branch: refs/heads/develop
Commit: a515ee06deeca3adf0ba053883a488787267ebcb
Parents: 08bbbe2
Author: Jinmei Liao 
Authored: Mon Nov 7 18:10:52 2016 -0800
Committer: Jinmei Liao 
Committed: Wed Nov 9 08:11:07 2016 -0800

--
 .../rest/internal/web/GeodeRestClient.java  | 154 +++
 .../internal/web/RestSecurityWithSSLTest.java   |  85 ++
 .../src/test/resources/ssl/trusted.keystore | Bin 0 -> 2241 bytes
 .../SecurityClusterConfigDUnitTest.java |  32 ++--
 .../test/dunit/rules/LocatorStarterRule.java|  14 ++
 5 files changed, 205 insertions(+), 80 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a515ee06/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
index 071b95c..4510e20 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
@@ -15,13 +15,10 @@
 
 package org.apache.geode.rest.internal.web;
 
-import org.apache.http.HttpEntity;
 import org.apache.http.HttpHost;
 import org.apache.http.HttpResponse;
 import org.apache.http.auth.AuthScope;
 import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.client.AuthCache;
-import org.apache.http.client.ClientProtocolException;
 import org.apache.http.client.CredentialsProvider;
 import org.apache.http.client.methods.HttpDelete;
 import org.apache.http.client.methods.HttpGet;
@@ -30,46 +27,85 @@ import org.apache.http.client.methods.HttpPost;
 import org.apache.http.client.methods.HttpPut;
 import org.apache.http.client.methods.HttpRequestBase;
 import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
 import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.auth.BasicScheme;
-import org.apache.http.impl.client.BasicAuthCache;
 import org.apache.http.impl.client.BasicCredentialsProvider;
-import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.impl.client.HttpClients;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.json.JSONTokener;
-import org.junit.Assert;
 
-import java.io.BufferedReader;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.net.MalformedURLException;
 import java.nio.charset.StandardCharsets;
+import java.security.KeyStore;
+import java.security.SecureRandom;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import javax.net.ssl.KeyManager;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
 
 public class GeodeRestClient {
-
-  public final static String PROTOCOL = "http";
   public final static String CONTEXT = "/geode/v1";
 
   private int restPort = 0;
   private String bindAddress = null;
+  private String protocol = "http";
+  private boolean useHttps = false;
+  private KeyStore keyStore;
 
   public GeodeRestClient(String bindAddress, int restPort) {
 this.bindAddress = bindAddress;
 this.restPort = restPort;
   }
 
-  public HttpResponse doHEAD(String query, String username, String password)
-  throws MalformedURLException {
+  public GeodeRestClient(String bindAddress, int restPort, boolean useHttps) {
+if (useHttps) {
+  this.protocol = "https";
+  this.useHttps = true;
+} else {
+  this.protocol = "http";
+  this.useHttps = false;
+}
+this.bindAddress = bindAddress;
+this.restPort = restPort;
+  }
+
+  public static String getContentType(HttpResponse response) {
+return response.getEntity().getContentType().getValue();
+  }
+
+  /**
+   * Retrieve the status code of the HttpResponse
+   * 
+   * @param response The HttpResponse message received from the server
+   * @return a numeric value
+   */
+  public static int getCode(HttpResponse response) {
+return response.getStatusLine().getStatusCode();

incubator-geode git commit: GEODE-2079: mark the test as flaky

2016-11-07 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 2e1a8c420 -> b4077414e


GEODE-2079: mark the test as flaky


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/b4077414
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/b4077414
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/b4077414

Branch: refs/heads/develop
Commit: b4077414ef859b627c7961d86b4704c2034ebfb1
Parents: 2e1a8c4
Author: Jinmei Liao 
Authored: Mon Nov 7 08:37:41 2016 -0800
Committer: Jinmei Liao 
Committed: Mon Nov 7 10:46:05 2016 -0800

--
 .../org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b4077414/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
--
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
index 1c8079a..b6afcca 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
@@ -43,6 +43,7 @@ import 
org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
 import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
 import org.apache.geode.test.junit.categories.DistributedTest;
+import org.apache.geode.test.junit.categories.FlakyTest;
 import 
org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.junit.After;
 import org.junit.Before;
@@ -90,10 +91,10 @@ public class ConnectToLocatorSSLDUnitTest extends 
JUnit4DistributedTestCase {
 securityProps.setProperty(SSL_TRUSTSTORE_PASSWORD, "password");
 securityProps.setProperty(SSL_PROTOCOLS, "TLSv1.2,TLSv1.1");
 
-
 setUpLocatorAndConnect(securityProps);
   }
 
+  @Category(FlakyTest.class) // GEODE-2079
   @Test
   public void testConnectToLocatorWithLegacyClusterSSL() throws Exception {
 securityProps.setProperty(CLUSTER_SSL_ENABLED, "true");



[2/7] incubator-geode git commit: GEODE-1912: use Spring shell's parser and delete our own parsing code

2016-11-07 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/809d64d7/geode-core/src/test/java/org/apache/geode/management/internal/cli/GfshParserJUnitTest.java
--
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/GfshParserJUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/GfshParserJUnitTest.java
deleted file mode 100644
index 44e99f4..000
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/GfshParserJUnitTest.java
+++ /dev/null
@@ -1,863 +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.management.internal.cli;
-
-import static org.junit.Assert.*;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.springframework.shell.core.CommandMarker;
-import org.springframework.shell.core.Completion;
-import org.springframework.shell.core.Converter;
-import org.springframework.shell.core.MethodTarget;
-import org.springframework.shell.core.Parser;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
-import org.springframework.shell.core.annotation.CliCommand;
-import org.springframework.shell.core.annotation.CliOption;
-import org.springframework.shell.event.ParseResult;
-
-import org.apache.geode.management.cli.CliMetaData;
-import org.apache.geode.management.cli.CommandProcessingException;
-import org.apache.geode.management.cli.ConverterHint;
-import org.apache.geode.management.cli.Result;
-import org.apache.geode.management.internal.cli.annotation.CliArgument;
-import 
org.apache.geode.management.internal.cli.converters.StringArrayConverter;
-import org.apache.geode.management.internal.cli.converters.StringListConverter;
-import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.parser.SyntaxConstants;
-import org.apache.geode.management.internal.cli.result.ResultBuilder;
-import org.apache.geode.management.internal.security.ResourceOperation;
-import org.apache.geode.security.ResourcePermission.Operation;
-import org.apache.geode.security.ResourcePermission.Resource;
-import org.apache.geode.test.junit.categories.UnitTest;
-
-/**
- * GfshParserJUnitTest - Includes tests to check the parsing and 
auto-completion capabilities of
- * {@link GfshParser}
- */
-@Category(UnitTest.class)
-public class GfshParserJUnitTest {
-
-  private static final String COMMAND1_NAME = "command1";
-  private static final String COMMAND1_NAME_ALIAS = "command1_alias";
-  private static final String COMMAND2_NAME = "c2";
-
-  private static final String COMMAND1_HELP = "help for " + COMMAND1_NAME;
-
-  // ARGUMENTS
-  private static final String ARGUMENT1_NAME = "argument1";
-  private static final String ARGUMENT1_HELP = "help for argument1";
-  private static final String ARGUMENT1_CONTEXT = "context for argument 1";
-  private static final Completion[] ARGUMENT1_COMPLETIONS =
-  {new Completion("arg1"), new Completion("arg1alt")};
-  private static final String ARGUMENT2_NAME = "argument2";
-  private static final String ARGUMENT2_CONTEXT = "context for argument 2";
-  private static final String ARGUMENT2_HELP = "help for argument2";
-  private static final String ARGUMENT2_UNSPECIFIED_DEFAULT_VALUE =
-  "{unspecified default value for argument2}";
-  private static final Completion[] ARGUMENT2_COMPLETIONS =
-  {new Completion("arg2"), new Completion("arg2alt")};
-
-  // OPTIONS
-  private static final String OPTION1_NAME = "option1";
-  private static final String OPTION1_SYNONYM = "opt1";
-  private static final String OPTION1_HELP = "help for option1";
-  private static final String OPTION1_CONTEXT = "context for option1";
-  private static final Completion[] OPTION1_COMPLETIONS =
-  {new Completion("option1"), new Completion("option1Alternate")};
-  private static final String OPTION2_NAME = "option2";
-  private static final String OPTION2_HELP = "help for option2";
-  private static final String 

[6/7] incubator-geode git commit: GEODE-1912: use Spring shell's parser and delete our own parsing code

2016-11-07 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/809d64d7/geode-core/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
index a1d03e4..1583b24 100755
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
@@ -15,49 +15,19 @@
 package org.apache.geode.management.internal.cli;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.geode.management.cli.CommandProcessingException;
-import 
org.apache.geode.management.internal.cli.exceptions.CliCommandMultiModeOptionException;
-import 
org.apache.geode.management.internal.cli.exceptions.CliCommandOptionException;
-import org.apache.geode.management.internal.cli.exceptions.CliException;
-import org.apache.geode.management.internal.cli.exceptions.ExceptionHandler;
-import org.apache.geode.management.internal.cli.help.format.NewHelp;
-import org.apache.geode.management.internal.cli.help.utils.HelpUtils;
-import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.modes.CommandModes;
-import org.apache.geode.management.internal.cli.modes.CommandModes.CommandMode;
-import org.apache.geode.management.internal.cli.parser.Argument;
-import org.apache.geode.management.internal.cli.parser.AvailabilityTarget;
-import org.apache.geode.management.internal.cli.parser.CommandTarget;
-import org.apache.geode.management.internal.cli.parser.GfshMethodTarget;
-import org.apache.geode.management.internal.cli.parser.MethodParameter;
-import org.apache.geode.management.internal.cli.parser.Option;
-import org.apache.geode.management.internal.cli.parser.OptionSet;
-import org.apache.geode.management.internal.cli.parser.Parameter;
-import org.apache.geode.management.internal.cli.parser.ParserUtils;
-import org.apache.geode.management.internal.cli.parser.SyntaxConstants;
-import 
org.apache.geode.management.internal.cli.parser.preprocessor.PreprocessorUtils;
-import 
org.apache.geode.management.internal.cli.parser.preprocessor.TrimmedInput;
-import org.apache.geode.management.internal.cli.shell.Gfsh;
-import org.apache.geode.management.internal.cli.util.CLIConsoleBufferUtil;
-import org.springframework.shell.core.AbstractShell;
+import org.springframework.shell.converters.ArrayConverter;
+import org.springframework.shell.core.CommandMarker;
 import org.springframework.shell.core.Completion;
 import org.springframework.shell.core.Converter;
-import org.springframework.shell.core.MethodTarget;
 import org.springframework.shell.core.Parser;
+import org.springframework.shell.core.SimpleParser;
 import org.springframework.shell.event.ParseResult;
 
-import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
+import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
 import java.util.logging.Logger;
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 /**
@@ -65,1469 +35,214 @@ import java.util.regex.Pattern;
  *
  * @since GemFire 7.0
  */
-public class GfshParser implements Parser {
+public class GfshParser extends SimpleParser {
 
   public static final String LINE_SEPARATOR = 
System.getProperty("line.separator");
-
-  // Constants used while finding command targets for help
-  private final static Short EXACT_TARGET = (short) 0;
-  private final static Short MATCHING_TARGETS = (short) 1;
+  public static final String OPTION_VALUE_SPECIFIER = "=";
+  public static final String VALUE_SEPARATOR = ",";
+  public static final String ARGUMENT_SEPARATOR = "?";
+  public static final String OPTION_SEPARATOR = " ";
+  public static final String SHORT_OPTION_SPECIFIER = "-";
+  public static final String LONG_OPTION_SPECIFIER = "--";
+  public static final String COMMAND_DELIMITER = ";";
+  public static final String CONTINUATION_CHARACTER = "\\";
 
   // Make use of LogWrapper
   private static final LogWrapper logWrapper = LogWrapper.getInstance();
 
+  //pattern used to split the userinput with whitespaces except in qutoes 
(single or double)
+  private static Pattern
+  PATTERN =
+  Pattern.compile("([^\\s\"]*)\"([^\"]*)\"|([^\\s']*)'([^']*)'|[^\\s]+");
   // private CliStringResourceBundle cliStringBundle;
   private CommandManager commandManager;
-
   /**
* Used for warning messages
*/
-  // TODO Investigating using GemFire logging.
-  private final Logger consoleLogger;
+  private Logger consoleLogger;
 
   public GfshParser(CommandManager commandManager) {
-// 

[5/7] incubator-geode git commit: GEODE-1912: use Spring shell's parser and delete our own parsing code

2016-11-07 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/809d64d7/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShellCommands.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShellCommands.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShellCommands.java
index 2677464..a728585 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShellCommands.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShellCommands.java
@@ -15,40 +15,10 @@
 
 package org.apache.geode.management.internal.cli.commands;
 
-import static org.apache.geode.distributed.ConfigurationProperties.*;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Writer;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.security.KeyStore;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.Set;
-
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.KeyManagerFactory;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManagerFactory;
-
-import org.springframework.shell.core.CommandMarker;
-import org.springframework.shell.core.ExitShellRequest;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
-import org.springframework.shell.core.annotation.CliCommand;
-import org.springframework.shell.core.annotation.CliOption;
+import static 
org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_CIPHERS;
+import static 
org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_PROTOCOLS;
+import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
+import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 
 import org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.internal.ClassPathLoader;
@@ -67,7 +37,6 @@ import org.apache.geode.management.internal.SSLUtil;
 import org.apache.geode.management.internal.cli.CliUtil;
 import org.apache.geode.management.internal.cli.GfshParser;
 import org.apache.geode.management.internal.cli.LogWrapper;
-import org.apache.geode.management.internal.cli.annotation.CliArgument;
 import 
org.apache.geode.management.internal.cli.converters.ConnectionEndpointConverter;
 import org.apache.geode.management.internal.cli.domain.ConnectToLocatorResult;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
@@ -85,6 +54,37 @@ import 
org.apache.geode.management.internal.web.http.support.SimpleHttpRequester
 import org.apache.geode.management.internal.web.shell.HttpOperationInvoker;
 import org.apache.geode.management.internal.web.shell.RestHttpOperationInvoker;
 import org.apache.geode.security.AuthenticationFailedException;
+import org.springframework.shell.core.CommandMarker;
+import org.springframework.shell.core.ExitShellRequest;
+import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
+import org.springframework.shell.core.annotation.CliCommand;
+import org.springframework.shell.core.annotation.CliOption;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Writer;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.security.KeyStore;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Properties;
+import java.util.Set;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManagerFactory;
 
 /**
  *
@@ -92,6 +92,159 @@ import 
org.apache.geode.security.AuthenticationFailedException;
  */
 public class ShellCommands implements CommandMarker {
 
+  // millis that connect --locator will wait for a response from the locator.
+  private final static int CONNECT_LOCATOR_TIMEOUT_MS = 6; // see bug 45971
+
+  public static int getConnectLocatorTimeoutInMS() {
+return ShellCommands.CONNECT_LOCATOR_TIMEOUT_MS;
+  }
+
+  private static String getGfshLogsCheckMessage(String logFilePath) {
+return CliStrings.format(CliStrings.GFSH__PLEASE_CHECK_LOGS_AT_0, 
logFilePath);
+  }
+
+  /* package-private */
+  static Map 

[7/7] incubator-geode git commit: GEODE-1912: use Spring shell's parser and delete our own parsing code

2016-11-07 Thread jinmeiliao
GEODE-1912: use Spring shell's parser and delete our own parsing code


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/809d64d7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/809d64d7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/809d64d7

Branch: refs/heads/feature/GEODE-1912
Commit: 809d64d712c0e31115b79c424e40fb87b3c46d79
Parents: 2777aec
Author: Jinmei Liao 
Authored: Thu Oct 27 10:24:07 2016 -0700
Committer: Jinmei Liao 
Committed: Sun Nov 6 18:50:51 2016 -0800

--
 .../management/internal/cli/CommandManager.java |  530 ++
 .../internal/cli/GfshParseResult.java   |   71 +-
 .../management/internal/cli/GfshParser.java | 1563 ++
 .../geode/management/internal/cli/Launcher.java |   51 +-
 .../internal/cli/annotation/CliArgument.java|   81 -
 .../internal/cli/commands/GfshHelpCommands.java |  111 +-
 .../internal/cli/commands/ShellCommands.java|  418 +++--
 .../cli/converters/BooleanConverter.java|   54 -
 .../internal/cli/converters/EnumConverter.java  |   64 -
 .../internal/cli/converters/HelpConverter.java  |   68 -
 .../cli/converters/HintTopicConverter.java  |   71 -
 .../cli/converters/StringArrayConverter.java|   53 -
 .../cli/converters/StringListConverter.java |   56 -
 .../cli/exceptions/CliCommandException.java |   65 -
 .../exceptions/CliCommandInvalidException.java  |   38 -
 .../CliCommandMultiModeOptionException.java |   48 -
 .../CliCommandNotAvailableException.java|   35 -
 .../exceptions/CliCommandOptionException.java   |   64 -
 ...CommandOptionHasMultipleValuesException.java |   47 -
 .../CliCommandOptionInvalidException.java   |   36 -
 .../CliCommandOptionMissingException.java   |   44 -
 .../CliCommandOptionNotApplicableException.java |   45 -
 ...liCommandOptionValueConversionException.java |   37 -
 .../CliCommandOptionValueException.java |   48 -
 .../CliCommandOptionValueMissingException.java  |   45 -
 .../cli/exceptions/ExceptionGenerator.java  |   48 -
 .../cli/exceptions/ExceptionHandler.java|   92 --
 .../management/internal/cli/help/CliTopic.java  |  132 --
 .../internal/cli/help/utils/HelpUtils.java  |  401 -
 .../internal/cli/parser/Argument.java   |   71 -
 .../internal/cli/parser/AvailabilityTarget.java |  106 --
 .../internal/cli/parser/CommandTarget.java  |  176 --
 .../internal/cli/parser/GfshMethodTarget.java   |  121 --
 .../internal/cli/parser/GfshOptionParser.java   |   37 -
 .../internal/cli/parser/MethodParameter.java|   39 -
 .../management/internal/cli/parser/Option.java  |  217 ---
 .../internal/cli/parser/OptionSet.java  |  128 --
 .../internal/cli/parser/Parameter.java  |  116 --
 .../internal/cli/parser/ParserUtils.java|  186 ---
 .../internal/cli/parser/SyntaxConstants.java|   34 -
 .../cli/parser/jopt/JoptOptionParser.java   |  302 
 .../preprocessor/EnclosingCharacters.java   |   32 -
 .../cli/parser/preprocessor/Preprocessor.java   |  151 --
 .../parser/preprocessor/PreprocessorUtils.java  |  327 
 .../internal/cli/parser/preprocessor/Stack.java |   52 -
 .../cli/parser/preprocessor/TrimmedInput.java   |   44 -
 .../management/internal/cli/shell/Gfsh.java |  567 +++
 .../internal/cli/shell/MultiCommandHelper.java  |   10 +-
 .../internal/cli/shell/jline/GfshHistory.java   |   21 +-
 .../internal/cli/util/CommandStringBuilder.java |   29 +-
 .../internal/cli/CommandManagerJUnitTest.java   |  137 +-
 .../internal/cli/GfshParserIntegrationTest.java |  323 +++-
 .../internal/cli/GfshParserJUnitTest.java   |  863 --
 .../internal/cli/JoptOptionParserTest.java  |  527 --
 .../internal/cli/NewGfshParserJUnitTest.java|   76 +
 .../cli/annotations/CliArgumentJUnitTest.java   |  154 --
 .../cli/commands/CliCommandTestBase.java|  117 +-
 .../commands/HelpCommandsIntegrationTest.java   |  142 --
 .../cli/parser/ParserUtilsJUnitTest.java|   81 -
 .../preprocessor/PreprocessorJUnitTest.java |  296 
 .../PreprocessorUtilsJUnitTest.java |  121 --
 .../shell/GfshExecutionStrategyJUnitTest.java   |   17 +-
 62 files changed, 1323 insertions(+), 8713 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/809d64d7/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java
index 4400445..ab3637d 100644
--- 

[3/7] incubator-geode git commit: GEODE-1912: use Spring shell's parser and delete our own parsing code

2016-11-07 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/809d64d7/geode-core/src/main/java/org/apache/geode/management/internal/cli/parser/preprocessor/PreprocessorUtils.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/parser/preprocessor/PreprocessorUtils.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/parser/preprocessor/PreprocessorUtils.java
deleted file mode 100644
index a1872c9..000
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/parser/preprocessor/PreprocessorUtils.java
+++ /dev/null
@@ -1,327 +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.management.internal.cli.parser.preprocessor;
-
-
-import java.util.regex.Pattern;
-
-import org.apache.commons.lang.StringUtils;
-
-import org.apache.geode.internal.lang.SystemUtils;
-import org.apache.geode.management.internal.cli.parser.SyntaxConstants;
-
-/**
- * The methods in this class will be used by the {@link Preprocessor} class to 
perform various
- * trivial operations
- * 
- * @since GemFire 7.0
- */
-public class PreprocessorUtils {
-
-  public static TrimmedInput simpleTrim(String input) {
-if (input != null) {
-  // First remove the trailing white spaces, we do not need those
-  if (!containsOnlyWhiteSpaces(input)) {
-input = StringUtils.stripEnd(input, null);
-  }
-  String output = input.trim();
-  return new TrimmedInput(output, input.length() - output.length());
-} else {
-  return null;
-}
-  }
-
-  /**
-   * 
-   * This function will trim the given input string. It will not only remove 
the spaces and tabs at
-   * the end but also compress multiple spaces and tabs to a single space
-   * 
-   * @param input The input string on which the trim operation needs to be 
performed
-   * @return String
-   */
-  public static TrimmedInput trim(final String input) {
-return trim(input, true);
-  }
-
-  /**
-   * 
-   * This function will trim the given input string. It will not only remove 
the spaces and tabs at
-   * the end but also compress multiple spaces and tabs to a single space
-   * 
-   * @param input The input string on which the trim operation needs to be 
performed
-   * @param retainLineSeparator whether to retain the line separator.
-   * 
-   * @return String
-   */
-  public static TrimmedInput trim(final String input, final boolean 
retainLineSeparator) {
-if (input != null) {
-  String inputCopy = input;
-  StringBuffer output = new StringBuffer();
-  // First remove the trailing white spaces, we do not need those
-  inputCopy = StringUtils.stripEnd(inputCopy, null);
-  // As this parser is for optionParsing, we also need to remove
-  // the trailing optionSpecifiers provided it has previous
-  // options. Remove the trailing LONG_OPTION_SPECIFIERs
-  // in a loop. It is necessary to check for previous options for
-  // the case of non-mandatory arguments.
-  // "^(.*)(\\s-+)$" - something that ends with a space followed by a 
series of hyphens.
-  while (Pattern.matches("^(.*)(\\s-+)$", inputCopy)) {
-inputCopy = StringUtils.removeEnd(inputCopy, 
SyntaxConstants.SHORT_OPTION_SPECIFIER);
-
-// Again we need to trim the trailing white spaces
-// As we are in a loop
-inputCopy = StringUtils.stripEnd(inputCopy, null);
-  }
-  // Here we made use of the String class function trim to remove the
-  // space and tabs if any at the
-  // beginning and the end of the string
-  int noOfSpacesRemoved = 0;
-  {
-int length = inputCopy.length();
-inputCopy = inputCopy.trim();
-noOfSpacesRemoved += length - inputCopy.length();
-  }
-  // Now we need to compress the multiple spaces and tabs to single space
-  // and tabs but we also need to ignore the white spaces inside the
-  // quotes and parentheses
-
-  StringBuffer buffer = new StringBuffer();
-
-  boolean startWhiteSpace = false;
-  for (int i = 0; i < inputCopy.length(); i++) {
-char ch = inputCopy.charAt(i);
-

[4/7] incubator-geode git commit: GEODE-1912: use Spring shell's parser and delete our own parsing code

2016-11-07 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/809d64d7/geode-core/src/main/java/org/apache/geode/management/internal/cli/help/utils/HelpUtils.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/help/utils/HelpUtils.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/help/utils/HelpUtils.java
deleted file mode 100644
index 11765c5..000
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/help/utils/HelpUtils.java
+++ /dev/null
@@ -1,401 +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.management.internal.cli.help.utils;
-
-import org.apache.geode.management.cli.CliMetaData;
-import org.apache.geode.management.internal.cli.help.format.*;
-import org.apache.geode.management.internal.cli.modes.CommandModes;
-import org.apache.geode.management.internal.cli.modes.CommandModes.CommandMode;
-import org.apache.geode.management.internal.cli.parser.Argument;
-import org.apache.geode.management.internal.cli.parser.CommandTarget;
-import org.apache.geode.management.internal.cli.parser.Option;
-import org.apache.geode.management.internal.cli.parser.SyntaxConstants;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-/**
- * @since GemFire 7.0
- */
-public class HelpUtils {
-  public static final String EXE_PREFIX_FOR_EXTERNAL_HELP =
-  org.apache.geode.management.internal.cli.shell.Gfsh.GFSH_APP_NAME + " ";
-  public static final String HELP__COMMAND_AVAILABLE = "Available";
-  public static final String HELP__COMMAND_NOTAVAILABLE = "Not Available";
-
-  private static final String NAME_NAME = "NAME";
-  private static final String SYNONYMS_NAME = "SYNONYMS";
-  private static final String SYNOPSIS_NAME = "SYNOPSIS";
-  private static final String SYNTAX_NAME = "SYNTAX";
-  private static final String ARGUMENTS_NAME = "ARGUMENTS";
-  private static final String OPTIONS_NAME = "PARAMETERS";
-  private static final String IS_AVAILABLE_NAME = "IS AVAILABLE";
-  private static final String MODES = "MODES";
-
-  private static final String REQUIRED_SUB_NAME = "Required: ";
-  private static final String DEFAULTVALUE_SUB_NAME = "Default value: ";
-  private static final String SYNONYMS_SUB_NAME = "Synonyms: ";
-  private static final String SPECIFIEDDEFAULTVALUE_SUB_NAME =
-  "Default (if the parameter is specified without value): ";
-  private static final String UNSPECIFIEDDEFAULTVALUE_VALUE_SUB_NAME =
-  "Default (if the parameter is not specified): ";
-
-  private static final String VALUE_FIELD = "value";
-  private static final String TRUE_TOKEN = "true";
-  private static final String FALSE_TOKEN = "false";
-
-
-  private static Help help(Block[] blocks) {
-return new Help().setBlocks(blocks);
-  }
-
-  private static Block block(String heading, Row... rows) {
-return new Block().setHeading(heading).setRows(rows);
-  }
-
-  private static Row row(String... info) {
-return new Row().setInfo(info);
-  }
-
-  @Deprecated
-  public static Help getHelp(CommandTarget commandTarget) {
-List blocks = new ArrayList();
-// First we will have the block for NAME of the command
-blocks.add(block(NAME_NAME, row(commandTarget.getCommandName(;
-// Now add synonyms if any
-if (commandTarget.getSynonyms() != null) {
-  blocks.add(block(SYNONYMS_NAME, row(commandTarget.getSynonyms(;
-}
-
-
-
-// Now comes the turn to display synopsis if any
-if (commandTarget.getCommandHelp() != null && 
!commandTarget.getCommandHelp().equals("")) {
-  blocks.add(block(SYNOPSIS_NAME, row(commandTarget.getCommandHelp(;
-}
-// Now display the syntax for the command
-StringBuffer buffer = new StringBuffer();
-buffer.append(commandTarget.getCommandName());
-// Create a list which will store optional arguments
-List optionalArguments = new ArrayList();
-for (Argument argument : commandTarget.getOptionParser().getArguments()) {
-  if (argument.isRequired()) {
-buffer.append(" " + argument.getArgumentName());
-  } else {
-optionalArguments.add(argument);
-  

[1/7] incubator-geode git commit: GEODE-1912: use Spring shell's parser and delete our own parsing code

2016-11-07 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/feature/GEODE-1912 [created] 809d64d71


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/809d64d7/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/HelpCommandsIntegrationTest.java
--
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/HelpCommandsIntegrationTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/HelpCommandsIntegrationTest.java
deleted file mode 100644
index 1483aad..000
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/HelpCommandsIntegrationTest.java
+++ /dev/null
@@ -1,142 +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.management.internal.cli.commands;
-
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.distributed.internal.InternalDistributedSystem;
-import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.management.internal.cli.CommandManager;
-import org.apache.geode.management.internal.cli.parser.CommandTarget;
-import org.apache.geode.management.internal.cli.result.CommandResult;
-import org.apache.geode.management.internal.cli.shell.Gfsh;
-import org.apache.geode.management.internal.cli.shell.GfshConfig;
-import org.apache.geode.test.junit.categories.IntegrationTest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.contrib.java.lang.system.ProvideSystemProperty;
-import org.junit.experimental.categories.Category;
-
-import java.util.Map;
-import java.util.Properties;
-
-import static org.apache.geode.distributed.ConfigurationProperties.*;
-import static 
org.apache.geode.management.internal.cli.commands.CliCommandTestBase.commandResultToString;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-@Category(IntegrationTest.class)
-public class HelpCommandsIntegrationTest {
-
-  private int jmxPort;
-
-  private Gfsh gfsh;
-
-  @ClassRule
-  public static final ProvideSystemProperty isGfsh = new 
ProvideSystemProperty("gfsh", "true");
-
-  @Before
-  public void setup() throws Exception {
-jmxPort = AvailablePortHelper.getRandomAvailableTCPPort();
-
-Properties localProps = new Properties();
-localProps.setProperty(LOCATORS, "");
-localProps.setProperty(MCAST_PORT, "0");
-localProps.setProperty(JMX_MANAGER, "true");
-localProps.setProperty(JMX_MANAGER_START, "true");
-localProps.setProperty(JMX_MANAGER_PORT, String.valueOf(jmxPort));
-
-new CacheFactory(localProps).create();
-
-gfsh = Gfsh.getInstance(false, new String[0], new GfshConfig());
-  }
-
-  @After
-  public void teardown() {
-InternalDistributedSystem ids = 
InternalDistributedSystem.getConnectedInstance();
-if (ids != null) {
-  ids.disconnect();
-}
-  }
-
-  /**
-   * TODO:GEODE-1466: update golden file to geode.properties TODO:GEODE-1566: 
update golden file to
-   * GeodeRedisServer
-   */
-  @Test
-  public void testOfflineHelp() throws Exception {
-Properties helpProps = new Properties();
-helpProps.load(
-
HelpCommandsIntegrationTest.class.getResourceAsStream("golden-help-offline.properties"));
-
-CommandManager cm = CommandManager.getInstance();
-for (Map.Entry e : cm.getCommands().entrySet()) {
-  // Mock commands may have been produced in the VM by other tests
-  // 'quit' is an alias for 'exit' and doesn't produce help
-  if (e.getKey().contains("mock") || e.getKey().contains("quit")) {
-continue;
-  }
-
-  CommandResult cr = (CommandResult) gfsh.executeCommand("help " + 
e.getKey()).getResult();
-  String gfshResult = commandResultToString(cr);
-
-  String goldParam = e.getKey().replace(" ", "-") + ".help";
-  String goldResult = helpProps.getProperty(goldParam);
-  assertNotNull("No golden text for: " + goldParam, goldResult);
-  assertEquals(goldResult.trim(), gfshResult.trim());
-
-  helpProps.remove(goldParam);
-}
-
-// No help should remain 

incubator-geode git commit: GEODE-1955: fix flaky tests by properly closing the gfsh instance in ConnectToLocatorSSLDUnitTest

2016-11-04 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 80026a7d6 -> 2777aec05


GEODE-1955: fix flaky tests by properly closing the gfsh instance in 
ConnectToLocatorSSLDUnitTest

GEODE-1955: fix flaky tests by properly closing the gfsh instance in 
ConnectToLocatorSSLDUnitTest

GEODE-1955: fix flaky tests by properly closing the gfsh instance in 
ConnectToLocatorSSLDUnitTest


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/2777aec0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/2777aec0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/2777aec0

Branch: refs/heads/develop
Commit: 2777aec05f1af920bf065d3f1117e525ed246a20
Parents: 80026a7
Author: Jinmei Liao 
Authored: Fri Oct 28 14:46:10 2016 -0700
Committer: Jinmei Liao 
Committed: Fri Nov 4 08:47:53 2016 -0700

--
 .../ConnectToLocatorSSLDUnitTest.java   | 106 ---
 .../security/GfshCommandsPostProcessorTest.java |   7 +-
 .../security/GfshCommandsSecurityTest.java  |  11 +-
 .../dunit/rules/GfshShellConnectionRule.java|  81 +++---
 .../dunit/rules/LocatorServerStartupRule.java   |   8 +-
 .../GfshCommandsOverHttpSecurityTest.java   |   2 +-
 6 files changed, 101 insertions(+), 114 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/2777aec0/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
--
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
index 8426c6f..1c8079a 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
@@ -15,16 +15,35 @@
 
 package org.apache.geode.management;
 
-import static org.apache.geode.distributed.ConfigurationProperties.*;
+import static 
org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_ENABLED;
+import static 
org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_KEYSTORE;
+import static 
org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_KEYSTORE_PASSWORD;
+import static 
org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_KEYSTORE_TYPE;
+import static 
org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_TRUSTSTORE;
+import static 
org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_TRUSTSTORE_PASSWORD;
+import static 
org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_ENABLED;
+import static 
org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_KEYSTORE;
+import static 
org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_KEYSTORE_PASSWORD;
+import static 
org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_KEYSTORE_TYPE;
+import static 
org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_TRUSTSTORE;
+import static 
org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_TRUSTSTORE_PASSWORD;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SSL_ENABLED_COMPONENTS;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SSL_KEYSTORE;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SSL_KEYSTORE_PASSWORD;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SSL_KEYSTORE_TYPE;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SSL_PROTOCOLS;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SSL_TRUSTSTORE;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SSL_TRUSTSTORE_PASSWORD;
 import static org.apache.geode.internal.Assert.assertTrue;
-import static org.apache.geode.util.test.TestUtil.*;
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.OutputStream;
-import java.util.Properties;
+import static org.apache.geode.util.test.TestUtil.getResourcePath;
 
+import org.apache.geode.internal.security.SecurableCommunicationChannel;
+import org.apache.geode.management.internal.cli.i18n.CliStrings;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
+import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
+import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
+import org.apache.geode.test.junit.categories.DistributedTest;
+import 
org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ 

incubator-geode git commit: GEODE-1912: make ServerStarter and LocatorStarter as regular rules so that it's easier to use them in a RuleChain

2016-10-28 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 6ec3f884c -> fa88520b6


GEODE-1912: make ServerStarter and LocatorStarter as regular rules so that it's 
easier to use them in a RuleChain


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/fa88520b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/fa88520b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/fa88520b

Branch: refs/heads/develop
Commit: fa88520b658dbf8ec74a83a63190bca8dc2bcff5
Parents: 6ec3f88
Author: Jinmei Liao 
Authored: Thu Oct 27 10:24:07 2016 -0700
Committer: Jinmei Liao 
Committed: Fri Oct 28 08:56:49 2016 -0700

--
 .../web/RestSecurityIntegrationTest.java|   5 +-
 .../rest/internal/web/RestServersJUnitTest.java |   5 +-
 .../internal/web/SwaggerVerificationTest.java   |  10 +-
 .../management/internal/cli/GfshParser.java |  42 ---
 .../CacheServerMBeanShiroJUnitTest.java |  29 +++--
 .../security/CacheServerStartupRule.java|   6 +-
 .../security/GfshCommandsPostProcessorTest.java |  26 +++--
 .../security/GfshCommandsSecurityTest.java  |  48 +---
 .../security/GfshShellConnectionRule.java   | 113 ---
 .../security/JavaRmiServerNameTest.java |  22 ++--
 .../security/AbstractSecureServerDUnitTest.java |  27 +++--
 .../ClusterConfigWithoutSecurityDUnitTest.java  |   6 +-
 .../security/PeerAuthenticatorDUnitTest.java|   4 +-
 ...eerSecurityWithEmbeddedLocatorDUnitTest.java |   6 +-
 .../SecurityClusterConfigDUnitTest.java |  12 +-
 .../SecurityWithoutClusterConfigDUnitTest.java  |   4 +-
 .../security/StartServerAuthorizationTest.java  |   6 +-
 .../dunit/rules/GfshShellConnectionRule.java| 111 ++
 .../dunit/rules/LocatorServerStartupRule.java   |  25 ++--
 .../geode/test/dunit/rules/LocatorStarter.java  |  72 
 .../test/dunit/rules/LocatorStarterRule.java|  75 
 .../geode/test/dunit/rules/ServerStarter.java   |  97 
 .../test/dunit/rules/ServerStarterRule.java | 110 ++
 .../GfshCommandsOverHttpSecurityTest.java   |   3 +-
 24 files changed, 441 insertions(+), 423 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fa88520b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
index 2dffcb7..aee2560 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
@@ -25,7 +25,7 @@ import static org.junit.Assert.assertTrue;
 import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.internal.AvailablePortHelper;
 import org.apache.geode.security.templates.SampleSecurityManager;
-import org.apache.geode.test.dunit.rules.ServerStarter;
+import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.geode.test.junit.categories.SecurityTest;
 import org.apache.http.HttpResponse;
@@ -58,12 +58,11 @@ public class RestSecurityIntegrationTest {
   };
 
   @ClassRule
-  public static ServerStarter serverStarter = new ServerStarter(properties);
+  public static ServerStarterRule serverStarter = new 
ServerStarterRule(properties);
   private final GeodeRestClient restClient = new GeodeRestClient("localhost", 
restPort);
 
   @BeforeClass
   public static void before() throws Exception {
-serverStarter.startServer();
 
serverStarter.cache.createRegionFactory(RegionShortcut.REPLICATE).create(REGION_NAME);
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fa88520b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestServersJUnitTest.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestServersJUnitTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestServersJUnitTest.java
index 552a184..b49e6ca 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestServersJUnitTest.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestServersJUnitTest.java
@@ -19,7 +19,7 @@ import static 
org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_
 import static 

incubator-geode git commit: GEODE-2030: security support for SDG

2016-10-28 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop c4e3b1553 -> 6ec3f884c


GEODE-2030: security support for SDG


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/6ec3f884
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/6ec3f884
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/6ec3f884

Branch: refs/heads/develop
Commit: 6ec3f884c953b48c357bf127a5a37ba88dedee8c
Parents: c4e3b15
Author: Jinmei Liao 
Authored: Mon Oct 24 10:54:36 2016 -0700
Committer: Jinmei Liao 
Committed: Fri Oct 28 08:48:57 2016 -0700

--
 .../org/apache/geode/cache/CacheFactory.java|  34 ++
 .../geode/internal/cache/CacheConfig.java   |  22 +++-
 .../geode/internal/cache/GemFireCacheImpl.java  | 121 ++-
 .../security/IntegratedSecurityService.java |  69 ---
 .../internal/security/SecurityService.java  |  17 +--
 .../security/IntegratedSecurityServiceTest.java |  51 +++-
 .../CacheFactoryWithSecurityObjectTest.java |  90 ++
 7 files changed, 320 insertions(+), 84 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6ec3f884/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java
--
diff --git a/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java 
b/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java
index b62feac..15557bb 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java
@@ -28,6 +28,8 @@ import org.apache.geode.internal.i18n.LocalizedStrings;
 import org.apache.geode.internal.jndi.JNDIInvoker;
 import org.apache.geode.pdx.PdxInstance;
 import org.apache.geode.pdx.PdxSerializer;
+import org.apache.geode.security.PostProcessor;
+import org.apache.geode.security.SecurityManager;
 
 
 /**
@@ -326,6 +328,38 @@ public class CacheFactory {
   }
 
   /**
+   * sets the securityManager for the cache. If this securityManager is set. 
It will override the
+   * security-manager property you set in your gemfire system properties.
+   *
+   * This is provided mostly for container to inject an already initialized 
securityManager. An
+   * object provided this way is expected to be initialized already. We are 
not calling the init
+   * method on this object
+   *
+   * @param securityManager
+   * @return
+   */
+  public CacheFactory setSecurityManager(SecurityManager securityManager) {
+this.cacheConfig.setSecurityManager(securityManager);
+return this;
+  }
+
+  /**
+   * sets the postProcessor for the cache. If this postProcessor is set. It 
will override thie
+   * security-post-processor setting in the gemfire system properties.
+   *
+   * This is provided mostly for container to inject an already initialized 
post processor. An
+   * object provided this way is expected to be initialized already. We are 
not calling the init
+   * method on this object
+   * 
+   * @param postProcessor
+   * @return
+   */
+  public CacheFactory setPostProcessor(PostProcessor postProcessor) {
+this.cacheConfig.setPostProcessor(postProcessor);
+return this;
+  }
+
+  /**
* Set the PDX serializer for the cache. If this serializer is set, it will 
be consulted to see if
* it can serialize any domain classes which are added to the cache in 
portable data exchange
* format.

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6ec3f884/geode-core/src/main/java/org/apache/geode/internal/cache/CacheConfig.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/CacheConfig.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/CacheConfig.java
index 91ae333..45b6a6c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/CacheConfig.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/CacheConfig.java
@@ -14,13 +14,14 @@
  */
 package org.apache.geode.internal.cache;
 
-import java.util.List;
-
 import org.apache.geode.internal.cache.xmlcache.CacheServerCreation;
 import org.apache.geode.internal.i18n.LocalizedStrings;
 import org.apache.geode.pdx.PdxSerializer;
 import org.apache.geode.pdx.ReflectionBasedAutoSerializer;
-import org.apache.geode.pdx.internal.AutoSerializableManager;
+import org.apache.geode.security.PostProcessor;
+import org.apache.geode.security.SecurityManager;
+
+import java.util.List;
 
 /**
  * This is helper class used by CacheFactory to pass the cache configuration 
values to cache
@@ -35,6 +36,9 @@ public class CacheConfig {
   public static boolean DEFAULT_PDX_PERSISTENT = 

incubator-geode git commit: GEODE-1983: Swagger is broken with integrated security

2016-10-28 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 3ff33be20 -> c4e3b1553


GEODE-1983: Swagger is broken with integrated security

* this closes #273


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/c4e3b155
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/c4e3b155
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/c4e3b155

Branch: refs/heads/develop
Commit: c4e3b155351e37f9d9354d837f5b588a5f236bce
Parents: 3ff33be
Author: Kevin Duling 
Authored: Wed Oct 26 12:36:46 2016 -0700
Committer: Jinmei Liao 
Committed: Fri Oct 28 08:36:42 2016 -0700

--
 .../geode/rest/internal/web/SwaggerVerificationTest.java |  3 +++
 .../internal/web/security/RestSecurityConfiguration.java | 11 ++-
 2 files changed, 9 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/c4e3b155/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/SwaggerVerificationTest.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/SwaggerVerificationTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/SwaggerVerificationTest.java
index 55cc26e..b550e11 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/SwaggerVerificationTest.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/SwaggerVerificationTest.java
@@ -17,12 +17,14 @@ package org.apache.geode.rest.internal.web;
 
 import static 
org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_BIND_ADDRESS;
 import static 
org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_PORT;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
 import static 
org.apache.geode.distributed.ConfigurationProperties.START_DEV_REST_API;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
 import org.apache.geode.internal.AvailablePortHelper;
 import org.apache.geode.internal.i18n.LocalizedStrings;
+import org.apache.geode.security.templates.SimpleSecurityManager;
 import org.apache.geode.test.dunit.rules.ServerStarter;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.http.HttpResponse;
@@ -42,6 +44,7 @@ public class SwaggerVerificationTest {
   static Properties properties = new Properties() {
 {
   setProperty(START_DEV_REST_API, "true");
+  setProperty(SECURITY_MANAGER, SimpleSecurityManager.class.getName());
   setProperty(HTTP_SERVICE_BIND_ADDRESS, "localhost");
   setProperty(HTTP_SERVICE_PORT, restPort + "");
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/c4e3b155/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
--
diff --git 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
index b9b9477..3aa5622 100644
--- 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
+++ 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
@@ -15,6 +15,8 @@
  */
 package org.apache.geode.rest.internal.web.security;
 
+import org.apache.geode.internal.security.IntegratedSecurityService;
+import org.apache.geode.internal.security.SecurityService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
@@ -27,9 +29,6 @@ import 
org.springframework.security.config.annotation.web.configuration.EnableWe
 import 
org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
 import org.springframework.security.config.http.SessionCreationPolicy;
 
-import org.apache.geode.internal.security.IntegratedSecurityService;
-import org.apache.geode.internal.security.SecurityService;
-
 @Configuration
 @EnableWebSecurity
 @EnableGlobalMethodSecurity(prePostEnabled = true)
@@ -54,8 +53,10 @@ public class RestSecurityConfiguration extends 
WebSecurityConfigurerAdapter {
 
   protected void configure(HttpSecurity http) throws Exception {
 
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
-.authorizeRequests().antMatchers("/ping", "/api-docs/**", 
"/docs/**").permitAll()
-.anyRequest().authenticated().and().formLogin().and().csrf().disable();
+

incubator-geode git commit: GEODE-17: Fix a logical bug that prevents customers to set both Peer and Client authenticator

2016-10-26 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop f02ea36f2 -> 477806af4


GEODE-17: Fix a logical bug that prevents customers to set both Peer and Client 
authenticator


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/477806af
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/477806af
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/477806af

Branch: refs/heads/develop
Commit: 477806af481fd3228a691edfd8e6edac5f90f851
Parents: f02ea36
Author: Jinmei Liao 
Authored: Wed Oct 26 10:40:10 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Oct 26 15:29:21 2016 -0700

--
 .../security/IntegratedSecurityService.java | 51 ++--
 .../security/IntegratedSecurityServiceTest.java | 30 +---
 2 files changed, 48 insertions(+), 33 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/477806af/geode-core/src/main/java/org/apache/geode/internal/security/IntegratedSecurityService.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/security/IntegratedSecurityService.java
 
b/geode-core/src/main/java/org/apache/geode/internal/security/IntegratedSecurityService.java
index 9f4697f..8fc0f11 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/security/IntegratedSecurityService.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/security/IntegratedSecurityService.java
@@ -14,29 +14,14 @@
  */
 package org.apache.geode.internal.security;
 
-import static org.apache.geode.distributed.ConfigurationProperties.*;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.security.AccessController;
-import java.util.Properties;
-import java.util.Set;
-import java.util.concurrent.Callable;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_CLIENT_AUTHENTICATOR;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTHENTICATOR;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
+import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_SHIRO_INIT;
 
 import org.apache.commons.lang.SerializationException;
 import org.apache.commons.lang.StringUtils;
-import org.apache.logging.log4j.Logger;
-import org.apache.shiro.SecurityUtils;
-import org.apache.shiro.ShiroException;
-import org.apache.shiro.config.Ini.Section;
-import org.apache.shiro.config.IniSecurityManagerFactory;
-import org.apache.shiro.mgt.DefaultSecurityManager;
-import org.apache.shiro.realm.Realm;
-import org.apache.shiro.subject.Subject;
-import org.apache.shiro.subject.support.SubjectThreadState;
-import org.apache.shiro.util.ThreadContext;
-import org.apache.shiro.util.ThreadState;
-
 import org.apache.geode.GemFireIOException;
 import org.apache.geode.internal.cache.EntryEventImpl;
 import org.apache.geode.internal.logging.LogService;
@@ -54,6 +39,24 @@ import org.apache.geode.security.ResourcePermission;
 import org.apache.geode.security.ResourcePermission.Operation;
 import org.apache.geode.security.ResourcePermission.Resource;
 import org.apache.geode.security.SecurityManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.ShiroException;
+import org.apache.shiro.config.Ini.Section;
+import org.apache.shiro.config.IniSecurityManagerFactory;
+import org.apache.shiro.mgt.DefaultSecurityManager;
+import org.apache.shiro.realm.Realm;
+import org.apache.shiro.subject.Subject;
+import org.apache.shiro.subject.support.SubjectThreadState;
+import org.apache.shiro.util.ThreadContext;
+import org.apache.shiro.util.ThreadState;
+
+import java.io.IOException;
+import java.io.Serializable;
+import java.security.AccessController;
+import java.util.Properties;
+import java.util.Set;
+import java.util.concurrent.Callable;
 
 public class IntegratedSecurityService implements SecurityService {
 
@@ -325,14 +328,10 @@ public class IntegratedSecurityService implements 
SecurityService {
   org.apache.shiro.mgt.SecurityManager shiroManager = new 
DefaultSecurityManager(realm);
   SecurityUtils.setSecurityManager(shiroManager);
   isIntegratedSecurity = true;
-} else if (!StringUtils.isBlank(clientAuthenticatorConfig)) {
-  isClientAuthenticator = true;
-} else if (!StringUtils.isBlank(peerAuthenticatorConfig)) {
-  isPeerAuthenticator = true;
 } else {
   isIntegratedSecurity = false;
-  isClientAuthenticator = false;
-  isPeerAuthenticator = false;
+  isClientAuthenticator = 

incubator-geode git commit: GEODE-2014: Upgrade Swagger libraries

2016-10-26 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 1d9a4ed62 -> ee0666a3c


GEODE-2014: Upgrade Swagger libraries

* Updated gradle exclusions to remove items no longer used.
* Updated distribution LICENSE file
* Corrected LICENSE file as jquery-ui is still used in pulse, updated version
* Updated rat configuration.
* This closes #271

(cherry picked from commit a6018ab)


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/ee0666a3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/ee0666a3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/ee0666a3

Branch: refs/heads/develop
Commit: ee0666a3ca5a8807648eb44f0c844c8aefde01fe
Parents: 1d9a4ed
Author: Kevin Duling 
Authored: Tue Oct 25 15:52:56 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Oct 26 09:30:04 2016 -0700

--
 LICENSE   |  5 +--
 geode-assembly/src/main/dist/LICENSE  | 40 ++
 geode-web-api/src/main/webapp/docs/index.html | 13 +++
 gradle/rat.gradle | 19 --
 4 files changed, 16 insertions(+), 61 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ee0666a3/LICENSE
--
diff --git a/LICENSE b/LICENSE
index 3f777c7..231239b 100644
--- a/LICENSE
+++ b/LICENSE
@@ -346,11 +346,8 @@ Apache Geode bundles the following files under the MIT 
license:
   - jQuery UI MultiSelect Widget v1.14pre
 (http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/),
 Copyright (c) 2011 Eric Hynds
-  - jQuery UI v1.8.18 (http://jqueryui.com/about), Copyright (c) jQuery
+  - jQuery UI v1.10.2 (http://jqueryui.com/about), Copyright (c) jQuery
 Foundation and other contributors, http://jquery.org
-  - jQuery Wiggle (https://github.com/wilhelm-murdoch/jQuery-Wiggle),
-Copyright (c) 2011 Wilhelm Murdoch ,
- TheDrunkenEpic 
   - jScrollPane (http://jscrollpane.kelvinluck.com/), Copyright (c) 2010
 Kelvin Luck
   - matchMedia() polyfill (https://github.com/paulirish/matchMedia.js),

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ee0666a3/geode-assembly/src/main/dist/LICENSE
--
diff --git a/geode-assembly/src/main/dist/LICENSE 
b/geode-assembly/src/main/dist/LICENSE
index 04ce74c..92e95b3 100644
--- a/geode-assembly/src/main/dist/LICENSE
+++ b/geode-assembly/src/main/dist/LICENSE
@@ -221,8 +221,6 @@ Apache Geode bundles the following files under the BSD 
3-Clause License:
 Copyright (c) 2002-2007 Marc Prud'hommeaux.
   - Antlr v2.7.7 (http://www.antlr.org), Copyright (c) 2012 Terrence Parr
 and Sam Harwell
-  - highlight.js v7.3 (https://highlightjs.org), Copyright (c) 2006, Ivan
-Sagalaev
   - JLine v2.12 (http://jline.sourceforge.net), Copyright (c) 2002-2006,
 Marc Prud'hommeaux 
   - jQuery Sparklines v2.0 (http://omnipotent.net/jquery.sparkline/),
@@ -597,26 +595,6 @@ Federal Courts of the Northern District of California and 
the state courts
 of the State of California, with venue lying in Santa Clara County,
 California.
 

-The ISC License (http://opensource.org/licenses/ISC)

-
-Apache Geode bundles the following file under the ISC license:
-
-  - Shred (https://github.com/pandastrike/shred), Copyright (c) 2012-2015
-Panda Strike, LLC and Dan Yoder 
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 ---
 The JSON License (http://www.json.org/license.html)
@@ -653,16 +631,12 @@ The MIT License 
(http://opensource.org/licenses/mit-license.html)
 
 Apache Geode bundles the following files under the MIT license:
 
-  - Backbone.js v0.9.2 (http://backbonejs.org), Copyright (c) 

incubator-geode git commit: GEODE-2014: Upgrade Swagger libraries

2016-10-25 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop a48871eda -> 15a54656f


GEODE-2014: Upgrade Swagger libraries

* Updated expected jars list after swagger update
* this closes #270


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/15a54656
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/15a54656
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/15a54656

Branch: refs/heads/develop
Commit: 15a54656f7f1b160a24f7d42dc39b6ceb0954821
Parents: a48871e
Author: Kevin Duling 
Authored: Mon Oct 24 16:23:26 2016 -0700
Committer: Jinmei Liao 
Committed: Tue Oct 25 08:03:54 2016 -0700

--
 .../src/test/resources/expected_jars.txt   | 17 +++--
 1 file changed, 11 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/15a54656/geode-assembly/src/test/resources/expected_jars.txt
--
diff --git a/geode-assembly/src/test/resources/expected_jars.txt 
b/geode-assembly/src/test/resources/expected_jars.txt
index 76f4b86..a9a5a79 100644
--- a/geode-assembly/src/test/resources/expected_jars.txt
+++ b/geode-assembly/src/test/resources/expected_jars.txt
@@ -37,10 +37,6 @@ jline
 jna
 jopt-simple
 json4s-ast
-json4s-core
-json4s-ext
-json4s-jackson
-json4s-native
 log4j-api
 log4j-core
 log4j-jcl
@@ -79,5 +75,14 @@ spring-tx
 spring-web
 spring-webmvc
 swagger-annotations
-swagger-core
-swagger-springmvc
+mapstruct
+spring-plugin-core
+spring-plugin-metadata
+springfox-core
+springfox-schema
+springfox-spi
+springfox-spring-web
+springfox-swagger
+springfox-swagger-common
+springfox-swagger-ui
+swagger-models
\ No newline at end of file



incubator-geode git commit: GEODE-2025: do not use 8080 as the default http-server-port since we defined default in DistributionConfig

2016-10-24 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop bd6f9e6f3 -> b4b6e079d


GEODE-2025: do not use 8080 as the default http-server-port since we defined 
default in DistributionConfig


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/b4b6e079
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/b4b6e079
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/b4b6e079

Branch: refs/heads/develop
Commit: b4b6e079d355aa5ef7b7c49d526772d8ecb7c75c
Parents: bd6f9e6
Author: Jinmei Liao 
Authored: Mon Oct 24 15:59:35 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 24 16:00:38 2016 -0700

--
 .../management/internal/cli/commands/golden-help-offline.properties | 1 -
 1 file changed, 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b4b6e079/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
--
diff --git 
a/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
 
b/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
index 40c28d2..7ee735b 100644
--- 
a/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
+++ 
b/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
@@ -2731,7 +2731,6 @@ PARAMETERS\n\
 \ \ \ \ http-service-port\n\
 \ \ \ \ \ \ \ \ Port on which HTTP Service will listen on\n\
 \ \ \ \ \ \ \ \ Required: false\n\
-\ \ \ \ \ \ \ \ Default (if the parameter is not specified): 8080\n\
 \ \ \ \ http-service-bind-address\n\
 \ \ \ \ \ \ \ \ The IP address on which the HTTP Service will be bound.  By 
default, the Server is bound to\n\
 \ \ \ \ \ \ \ \ all local addresses.\n\



incubator-geode git commit: GEODE-2014: add the missing license header

2016-10-24 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 259ceb77d -> 774298116


GEODE-2014: add the missing license header


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/77429811
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/77429811
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/77429811

Branch: refs/heads/develop
Commit: 7742981161238f82fcbb7144315adad966a0d26c
Parents: 259ceb7
Author: Jinmei Liao 
Authored: Mon Oct 24 12:44:28 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 24 12:44:28 2016 -0700

--
 geode-web-api/src/main/resources/swagger.properties | 14 ++
 1 file changed, 14 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/77429811/geode-web-api/src/main/resources/swagger.properties
--
diff --git a/geode-web-api/src/main/resources/swagger.properties 
b/geode-web-api/src/main/resources/swagger.properties
index 5042b2c..c065510 100644
--- a/geode-web-api/src/main/resources/swagger.properties
+++ b/geode-web-api/src/main/resources/swagger.properties
@@ -1,2 +1,16 @@
+#
+# 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.
+#
 springfox.documentation.swagger.v2.path=/v2/api-docs
 springfox.documentation.swagger.v1.path=/v1/api-docs
\ No newline at end of file



incubator-geode git commit: GEODE-2025: do not use 8080 as the default http-server-port since we defined default in DistributionConfig

2016-10-24 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 892d6d33f -> 259ceb77d


GEODE-2025: do not use 8080 as the default http-server-port since we defined 
default in DistributionConfig


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/259ceb77
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/259ceb77
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/259ceb77

Branch: refs/heads/develop
Commit: 259ceb77d0221772801f2b0e8f535530e346c371
Parents: 892d6d3
Author: Jinmei Liao 
Authored: Fri Oct 21 09:38:43 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 24 12:14:18 2016 -0700

--
 .../rest/internal/web/GeodeRestClient.java  |  28 ++---
 .../web/RestSecurityIntegrationTest.java|   4 +-
 .../rest/internal/web/RestServersJUnitTest.java |  68 
 .../internal/web/SwaggerVerificationTest.java   |   4 +-
 .../apache/geode/cache/server/CacheServer.java  |   7 --
 .../util/FindRestEnabledServersFunction.java|   9 +-
 .../geode/management/internal/RestAgent.java|  40 +++
 .../cli/commands/LauncherLifecycleCommands.java | 111 +++
 8 files changed, 179 insertions(+), 92 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/259ceb77/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
index 2889c67..071b95c 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
@@ -36,6 +36,9 @@ import org.apache.http.impl.client.BasicAuthCache;
 import org.apache.http.impl.client.BasicCredentialsProvider;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
 import org.json.JSONTokener;
 import org.junit.Assert;
 
@@ -49,12 +52,13 @@ import java.nio.charset.StandardCharsets;
 public class GeodeRestClient {
 
   public final static String PROTOCOL = "http";
-  public final static String HOSTNAME = "localhost";
   public final static String CONTEXT = "/geode/v1";
 
   private int restPort = 0;
+  private String bindAddress = null;
 
-  public GeodeRestClient(int restPort) {
+  public GeodeRestClient(String bindAddress, int restPort) {
+this.bindAddress = bindAddress;
 this.restPort = restPort;
   }
 
@@ -113,21 +117,19 @@ public class GeodeRestClient {
 return response.getStatusLine().getStatusCode();
   }
 
-  public static JSONTokener getResponseBody(HttpResponse response) throws 
IOException {
-HttpEntity entity = response.getEntity();
-InputStream content = entity.getContent();
-BufferedReader reader = new BufferedReader(new InputStreamReader(content));
-String line;
-StringBuilder str = new StringBuilder();
-while ((line = reader.readLine()) != null) {
-  str.append(line);
-}
-return new JSONTokener(str.toString());
+  public static JSONObject getJsonObject(HttpResponse response) throws 
IOException, JSONException {
+JSONTokener tokener = new JSONTokener(new 
InputStreamReader(response.getEntity().getContent()));
+return new JSONObject(tokener);
+  }
+
+  public static JSONArray getJsonArray(HttpResponse response) throws 
IOException, JSONException {
+JSONTokener tokener = new JSONTokener(new 
InputStreamReader(response.getEntity().getContent()));
+return new JSONArray(tokener);
   }
 
   public HttpResponse doRequest(HttpRequestBase request, String username, 
String password)
   throws MalformedURLException {
-HttpHost targetHost = new HttpHost(HOSTNAME, restPort, PROTOCOL);
+HttpHost targetHost = new HttpHost(bindAddress, restPort, PROTOCOL);
 CloseableHttpClient httpclient = HttpClients.custom().build();
 HttpClientContext clientContext = HttpClientContext.create();
 // if username is null, do not put in authentication

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/259ceb77/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
index 5b3f7ce..2dffcb7 100644
--- 

[8/9] incubator-geode git commit: GEODE-2014: Upgrade Swagger libraries

2016-10-24 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/892d6d33/geode-web-api/src/main/webapp/docs/css/screen.css
--
diff --git a/geode-web-api/src/main/webapp/docs/css/screen.css 
b/geode-web-api/src/main/webapp/docs/css/screen.css
deleted file mode 100644
index 48c983a..000
--- a/geode-web-api/src/main/webapp/docs/css/screen.css
+++ /dev/null
@@ -1,1221 +0,0 @@
-/* Original style from softwaremaniacs.org (c) Ivan Sagalaev 
 */
-.swagger-section pre code {
-  display: block;
-  padding: 0.5em;
-  background: #F0F0F0;
-}
-.swagger-section pre code,
-.swagger-section pre .subst,
-.swagger-section pre .tag .title,
-.swagger-section pre .lisp .title,
-.swagger-section pre .clojure .built_in,
-.swagger-section pre .nginx .title {
-  color: black;
-}
-.swagger-section pre .string,
-.swagger-section pre .title,
-.swagger-section pre .constant,
-.swagger-section pre .parent,
-.swagger-section pre .tag .value,
-.swagger-section pre .rules .value,
-.swagger-section pre .rules .value .number,
-.swagger-section pre .preprocessor,
-.swagger-section pre .ruby .symbol,
-.swagger-section pre .ruby .symbol .string,
-.swagger-section pre .aggregate,
-.swagger-section pre .template_tag,
-.swagger-section pre .django .variable,
-.swagger-section pre .smalltalk .class,
-.swagger-section pre .addition,
-.swagger-section pre .flow,
-.swagger-section pre .stream,
-.swagger-section pre .bash .variable,
-.swagger-section pre .apache .tag,
-.swagger-section pre .apache .cbracket,
-.swagger-section pre .tex .command,
-.swagger-section pre .tex .special,
-.swagger-section pre .erlang_repl .function_or_atom,
-.swagger-section pre .markdown .header {
-  color: #800;
-}
-.swagger-section pre .comment,
-.swagger-section pre .annotation,
-.swagger-section pre .template_comment,
-.swagger-section pre .diff .header,
-.swagger-section pre .chunk,
-.swagger-section pre .markdown .blockquote {
-  color: #888;
-}
-.swagger-section pre .number,
-.swagger-section pre .date,
-.swagger-section pre .regexp,
-.swagger-section pre .literal,
-.swagger-section pre .smalltalk .symbol,
-.swagger-section pre .smalltalk .char,
-.swagger-section pre .go .constant,
-.swagger-section pre .change,
-.swagger-section pre .markdown .bullet,
-.swagger-section pre .markdown .link_url {
-  color: #080;
-}
-.swagger-section pre .label,
-.swagger-section pre .javadoc,
-.swagger-section pre .ruby .string,
-.swagger-section pre .decorator,
-.swagger-section pre .filter .argument,
-.swagger-section pre .localvars,
-.swagger-section pre .array,
-.swagger-section pre .attr_selector,
-.swagger-section pre .important,
-.swagger-section pre .pseudo,
-.swagger-section pre .pi,
-.swagger-section pre .doctype,
-.swagger-section pre .deletion,
-.swagger-section pre .envvar,
-.swagger-section pre .shebang,
-.swagger-section pre .apache .sqbracket,
-.swagger-section pre .nginx .built_in,
-.swagger-section pre .tex .formula,
-.swagger-section pre .erlang_repl .reserved,
-.swagger-section pre .prompt,
-.swagger-section pre .markdown .link_label,
-.swagger-section pre .vhdl .attribute,
-.swagger-section pre .clojure .attribute,
-.swagger-section pre .coffeescript .property {
-  color: #ff;
-}
-.swagger-section pre .keyword,
-.swagger-section pre .id,
-.swagger-section pre .phpdoc,
-.swagger-section pre .title,
-.swagger-section pre .built_in,
-.swagger-section pre .aggregate,
-.swagger-section pre .css .tag,
-.swagger-section pre .javadoctag,
-.swagger-section pre .phpdoc,
-.swagger-section pre .yardoctag,
-.swagger-section pre .smalltalk .class,
-.swagger-section pre .winutils,
-.swagger-section pre .bash .variable,
-.swagger-section pre .apache .tag,
-.swagger-section pre .go .typename,
-.swagger-section pre .tex .command,
-.swagger-section pre .markdown .strong,
-.swagger-section pre .request,
-.swagger-section pre .status {
-  font-weight: bold;
-}
-.swagger-section pre .markdown .emphasis {
-  font-style: italic;
-}
-.swagger-section pre .nginx .built_in {
-  font-weight: normal;
-}
-.swagger-section pre .coffeescript .javascript,
-.swagger-section pre .javascript .xml,
-.swagger-section pre .tex .formula,
-.swagger-section pre .xml .javascript,
-.swagger-section pre .xml .vbscript,
-.swagger-section pre .xml .css,
-.swagger-section pre .xml .cdata {
-  opacity: 0.5;
-}
-.swagger-section .swagger-ui-wrap {
-  line-height: 1;
-  font-family: "Droid Sans", sans-serif;
-  max-width: 960px;
-  margin-left: auto;
-  margin-right: auto;
-}
-.swagger-section .swagger-ui-wrap b,
-.swagger-section .swagger-ui-wrap strong {
-  font-family: "Droid Sans", sans-serif;
-  font-weight: bold;
-}
-.swagger-section .swagger-ui-wrap q,
-.swagger-section .swagger-ui-wrap blockquote {
-  quotes: none;
-}
-.swagger-section .swagger-ui-wrap p {
-  line-height: 1.4em;
-  padding: 0 0 10px;
-  color: #33;
-}
-.swagger-section .swagger-ui-wrap q:before,
-.swagger-section .swagger-ui-wrap 

[9/9] incubator-geode git commit: GEODE-2014: Upgrade Swagger libraries

2016-10-24 Thread jinmeiliao
GEODE-2014: Upgrade Swagger libraries

* this closes #265


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/892d6d33
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/892d6d33
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/892d6d33

Branch: refs/heads/develop
Commit: 892d6d33f34c917dde7142b8f49df0957f8b7ed0
Parents: 24a7204
Author: Kevin Duling 
Authored: Tue Oct 18 15:54:55 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 24 12:00:18 2016 -0700

--
 .../rest/internal/web/GeodeRestClient.java  |   22 +-
 .../web/RestSecurityIntegrationTest.java|   24 +-
 .../internal/web/SwaggerVerificationTest.java   |   82 +
 .../geode/internal/i18n/LocalizedStrings.java   |8 +-
 geode-web-api/build.gradle  |   31 +-
 .../web/controllers/AbstractBaseController.java |   64 +-
 .../web/controllers/BaseControllerAdvice.java   |   19 +-
 .../web/controllers/CommonCrudController.java   |   40 +-
 .../controllers/FunctionAccessController.java   |   37 +-
 .../web/controllers/PdxBasedCrudController.java |   27 +-
 .../web/controllers/QueryAccessController.java  |   43 +-
 .../web/swagger/config/RestApiPathProvider.java |   96 -
 .../web/swagger/config/SwaggerConfig.java   |  169 +-
 .../src/main/resources/swagger.properties   |2 +
 geode-web-api/src/main/webapp/WEB-INF/web.xml   |2 +-
 .../src/main/webapp/docs/css/reset.css  |  125 -
 .../src/main/webapp/docs/css/screen.css | 1221 
 .../main/webapp/docs/images/explorer_icons.png  |  Bin 5763 -> 0 bytes
 .../src/main/webapp/docs/images/logo_small.png  |  Bin 770 -> 0 bytes
 .../main/webapp/docs/images/pet_store_api.png   |  Bin 824 -> 0 bytes
 .../src/main/webapp/docs/images/throbber.gif|  Bin 9257 -> 0 bytes
 .../src/main/webapp/docs/images/wordnik_api.png |  Bin 980 -> 0 bytes
 geode-web-api/src/main/webapp/docs/index.html   |   82 +-
 .../src/main/webapp/docs/lib/backbone-min.js|   38 -
 .../main/webapp/docs/lib/handlebars-1.0.0.js| 2278 ---
 .../main/webapp/docs/lib/highlight.7.3.pack.js  |1 -
 .../main/webapp/docs/lib/jquery-1.8.0.min.js|2 -
 .../main/webapp/docs/lib/jquery.ba-bbq.min.js   |   18 -
 .../main/webapp/docs/lib/jquery.slideto.min.js  |1 -
 .../main/webapp/docs/lib/jquery.wiggle.min.js   |8 -
 .../src/main/webapp/docs/lib/shred.bundle.js| 2765 --
 .../src/main/webapp/docs/lib/shred/content.js   |  193 --
 .../src/main/webapp/docs/lib/swagger-oauth.js   |  211 --
 .../src/main/webapp/docs/lib/swagger.js | 1527 --
 .../src/main/webapp/docs/lib/underscore-min.js  |   32 -
 geode-web-api/src/main/webapp/docs/o2c.html |   15 -
 .../src/main/webapp/docs/swagger-ui.js  | 2269 --
 .../src/main/webapp/docs/swagger-ui.min.js  |1 -
 geode-web/src/main/webapp/WEB-INF/web.xml   |2 +-
 gradle/dependency-versions.properties   |3 +-
 40 files changed, 264 insertions(+), 11194 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/892d6d33/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
index 4f92bfe..2889c67 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
@@ -15,13 +15,6 @@
 
 package org.apache.geode.rest.internal.web;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.MalformedURLException;
-import java.nio.charset.StandardCharsets;
-
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpHost;
 import org.apache.http.HttpResponse;
@@ -46,6 +39,13 @@ import org.apache.http.impl.client.HttpClients;
 import org.json.JSONTokener;
 import org.junit.Assert;
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.nio.charset.StandardCharsets;
+
 public class GeodeRestClient {
 
   public final static String PROTOCOL = "http";
@@ -86,10 +86,12 @@ public class GeodeRestClient {
 return doRequest(getRequest, username, password);
   }
 
-  public HttpResponse doGet(String uri) throws MalformedURLException {
-return doGet(uri, null, null);
+  public HttpResponse doGetRequest(String url) throws 

[6/9] incubator-geode git commit: GEODE-2014: Upgrade Swagger libraries

2016-10-24 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/892d6d33/geode-web-api/src/main/webapp/docs/lib/jquery-1.8.0.min.js
--
diff --git a/geode-web-api/src/main/webapp/docs/lib/jquery-1.8.0.min.js 
b/geode-web-api/src/main/webapp/docs/lib/jquery-1.8.0.min.js
deleted file mode 100644
index f121291..000
--- a/geode-web-api/src/main/webapp/docs/lib/jquery-1.8.0.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! jQuery v@1.8.0 jquery.com | jquery.org/license */
-(function(a,b){function G(a){var b=F[a]={};return 
p.each(a.split(s),function(a,c){b[c]=!0}),b}function 
J(a,c,d){if(d===b&===1){var 
e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof 
d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else
 d=b}return d}function K(a){var b;for(b in 
a){if(b==="data"&(a[b]))continue;if(b!=="toJSON")return!1}return!0}function
 ba(){return!1}function bb(){return!0}function 
bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do 
a=a[b];while(a&!==1);return a}function 
bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var 
e=!!b.call(a,d,a);return e===c});if(b.nodeType)return 
p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var 
d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return 
p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(
 a,b)>=0===c})}function bk(a){var 
b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return
 c}function bC(a,b){return 
a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function
 bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var 
c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete 
g.handle,g.events={};for(c in 
h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createEle
 ment)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return
 bR[a]=c,c}function ch(a,b,c,d){var 
e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof 
e=="object"?b:"")+"]",e,c,d)});else if(!c&(b)==="object")for(e in 
b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return 
function(b,c){typeof b!="string"&&(c=b,b="*");var 

[2/9] incubator-geode git commit: GEODE-2014: Upgrade Swagger libraries

2016-10-24 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/892d6d33/geode-web-api/src/main/webapp/docs/swagger-ui.js
--
diff --git a/geode-web-api/src/main/webapp/docs/swagger-ui.js 
b/geode-web-api/src/main/webapp/docs/swagger-ui.js
deleted file mode 100644
index 7fc84a4..000
--- a/geode-web-api/src/main/webapp/docs/swagger-ui.js
+++ /dev/null
@@ -1,2269 +0,0 @@
-// swagger-ui.js
-// version 2.0.17
-$(function() {
-
-   // Helper function for vertically aligning DOM elements
-   // http://www.seodenver.com/simple-vertical-align-plugin-for-jquery/
-   $.fn.vAlign = function() {
-   return this.each(function(i){
-   var ah = $(this).height();
-   var ph = $(this).parent().height();
-   var mh = (ph - ah) / 2;
-   $(this).css('margin-top', mh);
-   });
-   };
-
-   $.fn.stretchFormtasticInputWidthToParent = function() {
-   return this.each(function(i){
-   var p_width = $(this).closest("form").innerWidth();
-   var p_padding = 
parseInt($(this).closest("form").css('padding-left') ,10) + 
parseInt($(this).closest("form").css('padding-right'), 10);
-   var this_padding = parseInt($(this).css('padding-left'), 10) + 
parseInt($(this).css('padding-right'), 10);
-   $(this).css('width', p_width - p_padding - this_padding);
-   });
-   };
-
-   $('form.formtastic li.string input, form.formtastic 
textarea').stretchFormtasticInputWidthToParent();
-
-   // Vertically center these paragraphs
-   // Parent may need a min-height for this to work..
-   $('ul.downplayed li div.content p').vAlign();
-
-   // When a sandbox form is submitted..
-   $("form.sandbox").submit(function(){
-
-   var error_free = true;
-
-   // Cycle through the forms required inputs
-   $(this).find("input.required").each(function() {
-
-   // Remove any existing error styles from the input
-   $(this).removeClass('error');
-
-   // Tack the error style on if the input is empty..
-   if ($(this).val() == '') {
-   $(this).addClass('error');
-   $(this).wiggle();
-   error_free = false;
-   }
-
-   });
-
-   return error_free;
-   });
-
-});
-
-function clippyCopiedCallback(a) {
-  $('#api_key_copied').fadeIn().delay(1000).fadeOut();
-
-  // var b = $("#clippy_tooltip_" + a);
-  // b.length != 0 && (b.attr("title", "copied!").trigger("tipsy.reload"), 
setTimeout(function() {
-  //   b.attr("title", "copy to clipboard")
-  // },
-  // 500))
-}
-
-// Logging function that accounts for browsers that don't have window.console
-log = function(){
-  log.history = log.history || [];
-  log.history.push(arguments);
-  if(this.console){
-console.log( Array.prototype.slice.call(arguments) );
-  }
-};
-
-// Handle browsers that do console incorrectly (IE9 and below, see 
http://stackoverflow.com/a/5539378/7913)
-if (Function.prototype.bind && console && typeof console.log == "object") {
-[
-  "log","info","warn","error","assert","dir","clear","profile","profileEnd"
-].forEach(function (method) {
-console[method] = this.bind(console[method], console);
-}, Function.prototype.call);
-}
-
-var Docs = {
-
-   shebang: function() {
-
-   // If shebang has an operation nickname in it..
-   // e.g. /docs/#!/words/get_search
-   var fragments = $.param.fragment().split('/');
-   fragments.shift(); // get rid of the bang
-
-   switch (fragments.length) {
-   case 1:
-   // Expand all operations for the resource and 
scroll to it
-   log('shebang resource:' + fragments[0]);
-   var dom_id = 'resource_' + fragments[0];
-
-   
Docs.expandEndpointListForResource(fragments[0]);
-   $("#"+dom_id).slideto({highlight: false});
-   break;
-   case 2:
-   // Refer to the endpoint DOM element, e.g. 
#words_get_search
-   log('shebang endpoint: ' + fragments.join('_'));
-
-// Expand Resource
-Docs.expandEndpointListForResource(fragments[0]);
-$("#"+dom_id).slideto({highlight: false});
-
-// Expand operation
-   var li_dom_id = fragments.join('_');
-   var li_content_dom_id = li_dom_id + "_content";
-
-log("li_dom_id " + li_dom_id);
-log("li_content_dom_id " + li_content_dom_id);
-
-   

[3/9] incubator-geode git commit: GEODE-2014: Upgrade Swagger libraries

2016-10-24 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/892d6d33/geode-web-api/src/main/webapp/docs/lib/shred/content.js
--
diff --git a/geode-web-api/src/main/webapp/docs/lib/shred/content.js 
b/geode-web-api/src/main/webapp/docs/lib/shred/content.js
deleted file mode 100644
index 1c21acd..000
--- a/geode-web-api/src/main/webapp/docs/lib/shred/content.js
+++ /dev/null
@@ -1,193 +0,0 @@
-
-// The purpose of the `Content` object is to abstract away the data conversions
-// to and from raw content entities as strings. For example, you want to be 
able
-// to pass in a Javascript object and have it be automatically converted into a
-// JSON string if the `content-type` is set to a JSON-based media type.
-// Conversely, you want to be able to transparently get back a Javascript 
object
-// in the response if the `content-type` is a JSON-based media-type.
-
-// One limitation of the current implementation is that it [assumes the 
`charset` is UTF-8](https://github.com/spire-io/shred/issues/5).
-
-// The `Content` constructor takes an options object, which *must* have either 
a
-// `body` or `data` property and *may* have a `type` property indicating the
-// media type. If there is no `type` attribute, a default will be inferred.
-var Content = function(options) {
-  this.body = options.body;
-  this.data = options.data;
-  this.type = options.type;
-};
-
-Content.prototype = {
-  // Treat `toString()` as asking for the `content.body`. That is, the raw 
content entity.
-  //
-  // toString: function() { return this.body; }
-  //
-  // Commented out, but I've forgotten why. :/
-};
-
-
-// `Content` objects have the following attributes:
-Object.defineProperties(Content.prototype,{
-  
-// - **type**. Typically accessed as `content.type`, reflects the 
`content-type`
-//   header associated with the request or response. If not passed as an 
options
-//   to the constructor or set explicitly, it will infer the type the `data`
-//   attribute, if possible, and, failing that, will default to `text/plain`.
-  type: {
-get: function() {
-  if (this._type) {
-return this._type;
-  } else {
-if (this._data) {
-  switch(typeof this._data) {
-case "string": return "text/plain";
-case "object": return "application/json";
-  }
-}
-  }
-  return "text/plain";
-},
-set: function(value) {
-  this._type = value;
-  return this;
-},
-enumerable: true
-  },
-
-// - **data**. Typically accessed as `content.data`, reflects the content 
entity
-//   converted into Javascript data. This can be a string, if the `type` is, 
say,
-//   `text/plain`, but can also be a Javascript object. The conversion applied 
is
-//   based on the `processor` attribute. The `data` attribute can also be set
-//   directly, in which case the conversion will be done the other way, to 
infer
-//   the `body` attribute.
-  data: {
-get: function() {
-  if (this._body) {
-return this.processor.parser(this._body);
-  } else {
-return this._data;
-  }
-},
-set: function(data) {
-  if (this._body&) Errors.setDataWithBody(this);
-  this._data = data;
-  return this;
-},
-enumerable: true
-  },
-
-// - **body**. Typically accessed as `content.body`, reflects the content 
entity
-//   as a UTF-8 string. It is the mirror of the `data` attribute. If you set 
the
-//   `data` attribute, the `body` attribute will be inferred and vice-versa. If
-//   you attempt to set both, an exception is raised.
-  body: {
-get: function() {
-  if (this._data) {
-return this.processor.stringify(this._data);
-  } else {
-return this._body.toString();
-  }
-},
-set: function(body) {
-  if (this._data&) Errors.setBodyWithData(this);
-  this._body = body;
-  return this;
-},
-enumerable: true
-  },
-
-// - **processor**. The functions that will be used to convert to/from `data` 
and
-//   `body` attributes. You can add processors. The two that are built-in are 
for
-//   `text/plain`, which is basically an identity transformation and
-//   `application/json` and other JSON-based media types (including custom 
media
-//   types with `+json`). You can add your own processors. See below.
-  processor: {
-get: function() {
-  var processor = Content.processors[this.type];
-  if (processor) {
-return processor;
-  } else {
-// Return the first processor that matches any part of the
-// content type. ex: application/vnd.foobar.baz+json will match json.
-var main = this.type.split(";")[0];
-var parts = main.split(/\+|\//);
-for (var i=0, l=parts.length; i < l; i++) {
-  processor = Content.processors[parts[i]]
-}
-return processor || {parser:identity,stringify:toString};
-  }
-},
-enumerable: 

[5/9] incubator-geode git commit: GEODE-2014: Upgrade Swagger libraries

2016-10-24 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/892d6d33/geode-web-api/src/main/webapp/docs/lib/jquery.ba-bbq.min.js
--
diff --git a/geode-web-api/src/main/webapp/docs/lib/jquery.ba-bbq.min.js 
b/geode-web-api/src/main/webapp/docs/lib/jquery.ba-bbq.min.js
deleted file mode 100644
index aa14db8..000
--- a/geode-web-api/src/main/webapp/docs/lib/jquery.ba-bbq.min.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010
- * http://benalman.com/projects/jquery-bbq-plugin/
- * 
- * Copyright (c) 2010 "Cowboy" Ben Alman
- * Dual licensed under the MIT and GPL licenses.
- * http://benalman.com/about/license/
- */
-(function($,p){var 
i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function
 E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return 
function(){return G.apply(this,F.concat(m.call(arguments)))}}function 
n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return 
F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var 
O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return
 O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var 
F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.no
 Escape(",/");$.deparam=l=function(I,F){var 
H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," 
").split("&"),function(L,Q){var 
K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M

[1/9] incubator-geode git commit: GEODE-2014: Upgrade Swagger libraries

2016-10-24 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 24a72040c -> 892d6d33f


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/892d6d33/geode-web-api/src/main/webapp/docs/swagger-ui.min.js
--
diff --git a/geode-web-api/src/main/webapp/docs/swagger-ui.min.js 
b/geode-web-api/src/main/webapp/docs/swagger-ui.min.js
deleted file mode 100644
index d6d7c89..000
--- a/geode-web-api/src/main/webapp/docs/swagger-ui.min.js
+++ /dev/null
@@ -1 +0,0 @@
-$(function(){$.fn.vAlign=function(){return this.each(function(c){var 
a=$(this).height();var d=$(this).parent().height();var 
b=(d-a)/2;$(this).css("margin-top",b)})};$.fn.stretchFormtasticInputWidthToParent=function(){return
 this.each(function(b){var d=$(this).closest("form").innerWidth();var 
c=parseInt($(this).closest("form").css("padding-left"),10)+parseInt($(this).closest("form").css("padding-right"),10);var
 
a=parseInt($(this).css("padding-left"),10)+parseInt($(this).css("padding-right"),10);$(this).css("width",d-c-a)})};$("form.formtastic
 li.string input, form.formtastic 
textarea").stretchFormtasticInputWidthToParent();$("ul.downplayed li 
div.content p").vAlign();$("form.sandbox").submit(function(){var 
a=true;$(this).find("input.required").each(function(){$(this).removeClass("error");if($(this).val()==""){$(this).addClass("error");$(this).wiggle();a=false}});return
 a})});function 
clippyCopiedCallback(b){$("#api_key_copied").fadeIn().delay(1000).fadeOut()}log=function(){log.histor
 
y=log.history||[];log.history.push(arguments);if(this.console){console.log(Array.prototype.slice.call(arguments))}};if(Function.prototype.bind&&
 
console.log=="object"){["log","info","warn","error","assert","dir","clear","profile","profileEnd"].forEach(function(a){console[a]=this.bind(console[a],console)},Function.prototype.call)}var
 Docs={shebang:function(){var 
b=$.param.fragment().split("/");b.shift();switch(b.length){case 1:log("shebang 
resource:"+b[0]);var 
d="resource_"+b[0];Docs.expandEndpointListForResource(b[0]);$("#"+d).slideto({highlight:false});break;case
 2:log("shebang endpoint: 
"+b.join("_"));Docs.expandEndpointListForResource(b[0]);$("#"+d).slideto({highlight:false});var
 c=b.join("_");var a=c+"_content";log("li_dom_id "+c);log("li_content_dom_id 
"+a);Docs.expandOperation($("#"+a));$("#"+c).slideto({highlight:false});break}},toggleEndpointListForResource:function(b){var
 a=$("li#resource_"+Docs.escapeResourceName(b)+" 
ul.endpoints");if(a.is(":visible")){Docs
 
.collapseEndpointListForResource(b)}else{Docs.expandEndpointListForResource(b)}},expandEndpointListForResource:function(b){var
 b=Docs.escapeResourceName(b);if(b==""){$(".resource 
ul.endpoints").slideDown();return}$("li#resource_"+b).addClass("active");var 
a=$("li#resource_"+b+" 
ul.endpoints");a.slideDown()},collapseEndpointListForResource:function(b){var 
b=Docs.escapeResourceName(b);$("li#resource_"+b).removeClass("active");var 
a=$("li#resource_"+b+" 
ul.endpoints");a.slideUp()},expandOperationsForResource:function(a){Docs.expandEndpointListForResource(a);if(a==""){$(".resource
 ul.endpoints li.operation 
div.content").slideDown();return}$("li#resource_"+Docs.escapeResourceName(a)+" 
li.operation 
div.content").each(function(){Docs.expandOperation($(this))})},collapseOperationsForResource:function(a){Docs.expandEndpointListForResource(a);$("li#resource_"+Docs.escapeResourceName(a)+"
 li.operation 
div.content").each(function(){Docs.collapseOperation($(this))})},escapeResourceName:function(
 a){return 
a.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g,"\\$&")},expandOperation:function(a){a.slideDown()},collapseOperation:function(a){a.slideUp()}};(function(){var
 
b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.content_type=b(function(g,l,f,k,j){this.compilerInfo=[4,">=
 1.0.0"];f=this.merge(f,g.helpers);j=j||{};var 
i="",c,h="function",m=this;function e(r,q){var o="",p;o+="\n  
";p=f.each.call(r,r.produces,{hash:{},inverse:m.noop,fn:m.program(2,d,q),data:q});if(p||p===0){o+=p}o+="\n";return
 o}function d(r,q){var o="",p;o+='\n';p=(typeof 
r===h?r.apply(r):r);if(p||p===0){o+=p}o+="\n";return 
o}function n(p,o){return'\n  application/json\n'}i+='\n\n';c=f["if"].call(l,l.produces,{hash:{},inverse:m.program(4,n,j),fn:m.program(1,e,j),data:j});if(c||c===0){i+=c}i+="\n\n
 ";return i})})();(function(){var 
b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.main=b(function(g,m,f,l,k){this.compilerInfo=[4,">=
 1.0.0"];f=this.merge(f,g.helpers);k=k||{};var 
i="",c,h="function",j=this.escapeExpression,p=this;function e(v,u){var 
r="",t,s;r+='\n'+j(((t=((t=v.info),t==null||t===false?t:t.title)),typeof 
t===h?t.apply(v):t))+'\n';s=((t=((t=v.info),t==null||t===false?t:t.description)),typeof
 t===h?t.apply(v):t);if(s||s===0){r+=s}r+="\n

[7/9] incubator-geode git commit: GEODE-2014: Upgrade Swagger libraries

2016-10-24 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/892d6d33/geode-web-api/src/main/webapp/docs/lib/handlebars-1.0.0.js
--
diff --git a/geode-web-api/src/main/webapp/docs/lib/handlebars-1.0.0.js 
b/geode-web-api/src/main/webapp/docs/lib/handlebars-1.0.0.js
deleted file mode 100644
index a5606ce..000
--- a/geode-web-api/src/main/webapp/docs/lib/handlebars-1.0.0.js
+++ /dev/null
@@ -1,2278 +0,0 @@
-/*
-
-Copyright (C) 2011 by Yehuda Katz
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-*/
-
-// lib/handlebars/browser-prefix.js
-var Handlebars = {};
-
-(function(Handlebars, undefined) {
-;
-// lib/handlebars/base.js
-
-Handlebars.VERSION = "1.0.0";
-Handlebars.COMPILER_REVISION = 4;
-
-Handlebars.REVISION_CHANGES = {
-  1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
-  2: '== 1.0.0-rc.3',
-  3: '== 1.0.0-rc.4',
-  4: '>= 1.0.0'
-};
-
-Handlebars.helpers  = {};
-Handlebars.partials = {};
-
-var toString = Object.prototype.toString,
-functionType = '[object Function]',
-objectType = '[object Object]';
-
-Handlebars.registerHelper = function(name, fn, inverse) {
-  if (toString.call(name) === objectType) {
-if (inverse || fn) { throw new Handlebars.Exception('Arg not supported 
with multiple helpers'); }
-Handlebars.Utils.extend(this.helpers, name);
-  } else {
-if (inverse) { fn.not = inverse; }
-this.helpers[name] = fn;
-  }
-};
-
-Handlebars.registerPartial = function(name, str) {
-  if (toString.call(name) === objectType) {
-Handlebars.Utils.extend(this.partials,  name);
-  } else {
-this.partials[name] = str;
-  }
-};
-
-Handlebars.registerHelper('helperMissing', function(arg) {
-  if(arguments.length === 2) {
-return undefined;
-  } else {
-throw new Error("Missing helper: '" + arg + "'");
-  }
-});
-
-Handlebars.registerHelper('blockHelperMissing', function(context, options) {
-  var inverse = options.inverse || function() {}, fn = options.fn;
-
-  var type = toString.call(context);
-
-  if(type === functionType) { context = context.call(this); }
-
-  if(context === true) {
-return fn(this);
-  } else if(context === false || context == null) {
-return inverse(this);
-  } else if(type === "[object Array]") {
-if(context.length > 0) {
-  return Handlebars.helpers.each(context, options);
-} else {
-  return inverse(this);
-}
-  } else {
-return fn(context);
-  }
-});
-
-Handlebars.K = function() {};
-
-Handlebars.createFrame = Object.create || function(object) {
-  Handlebars.K.prototype = object;
-  var obj = new Handlebars.K();
-  Handlebars.K.prototype = null;
-  return obj;
-};
-
-Handlebars.logger = {
-  DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,
-
-  methodMap: {0: 'debug', 1: 'info', 2: 'warn', 3: 'error'},
-
-  // can be overridden in the host environment
-  log: function(level, obj) {
-if (Handlebars.logger.level <= level) {
-  var method = Handlebars.logger.methodMap[level];
-  if (typeof console !== 'undefined' && console[method]) {
-console[method].call(console, obj);
-  }
-}
-  }
-};
-
-Handlebars.log = function(level, obj) { Handlebars.logger.log(level, obj); };
-
-Handlebars.registerHelper('each', function(context, options) {
-  var fn = options.fn, inverse = options.inverse;
-  var i = 0, ret = "", data;
-
-  var type = toString.call(context);
-  if(type === functionType) { context = context.call(this); }
-
-  if (options.data) {
-data = Handlebars.createFrame(options.data);
-  }
-
-  if(context && typeof context === 'object') {
-if(context instanceof Array){
-  for(var j = context.length; i

[4/9] incubator-geode git commit: GEODE-2014: Upgrade Swagger libraries

2016-10-24 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/892d6d33/geode-web-api/src/main/webapp/docs/lib/shred.bundle.js
--
diff --git a/geode-web-api/src/main/webapp/docs/lib/shred.bundle.js 
b/geode-web-api/src/main/webapp/docs/lib/shred.bundle.js
deleted file mode 100644
index 72f06ae..000
--- a/geode-web-api/src/main/webapp/docs/lib/shred.bundle.js
+++ /dev/null
@@ -1,2765 +0,0 @@
-var require = function (file, cwd) {
-var resolved = require.resolve(file, cwd || '/');
-var mod = require.modules[resolved];
-if (!mod) throw new Error(
-'Failed to resolve module ' + file + ', tried ' + resolved
-);
-var res = mod._cached ? mod._cached : mod();
-return res;
-}
-
-require.paths = [];
-require.modules = {};
-require.extensions = [".js",".coffee"];
-
-require._core = {
-'assert': true,
-'events': true,
-'fs': true,
-'path': true,
-'vm': true
-};
-
-require.resolve = (function () {
-return function (x, cwd) {
-if (!cwd) cwd = '/';
-
-if (require._core[x]) return x;
-var path = require.modules.path();
-var y = cwd || '.';
-
-if (x.match(/^(?:\.\.?\/|\/)/)) {
-var m = loadAsFileSync(path.resolve(y, x))
-|| loadAsDirectorySync(path.resolve(y, x));
-if (m) return m;
-}
-
-var n = loadNodeModulesSync(x, y);
-if (n) return n;
-
-throw new Error("Cannot find module '" + x + "'");
-
-function loadAsFileSync (x) {
-if (require.modules[x]) {
-return x;
-}
-
-for (var i = 0; i < require.extensions.length; i++) {
-var ext = require.extensions[i];
-if (require.modules[x + ext]) return x + ext;
-}
-}
-
-function loadAsDirectorySync (x) {
-x = x.replace(/\/+$/, '');
-var pkgfile = x + '/package.json';
-if (require.modules[pkgfile]) {
-var pkg = require.modules[pkgfile]();
-var b = pkg.browserify;
-if (typeof b === 'object' && b.main) {
-var m = loadAsFileSync(path.resolve(x, b.main));
-if (m) return m;
-}
-else if (typeof b === 'string') {
-var m = loadAsFileSync(path.resolve(x, b));
-if (m) return m;
-}
-else if (pkg.main) {
-var m = loadAsFileSync(path.resolve(x, pkg.main));
-if (m) return m;
-}
-}
-
-return loadAsFileSync(x + '/index');
-}
-
-function loadNodeModulesSync (x, start) {
-var dirs = nodeModulesPathsSync(start);
-for (var i = 0; i < dirs.length; i++) {
-var dir = dirs[i];
-var m = loadAsFileSync(dir + '/' + x);
-if (m) return m;
-var n = loadAsDirectorySync(dir + '/' + x);
-if (n) return n;
-}
-
-var m = loadAsFileSync(x);
-if (m) return m;
-}
-
-function nodeModulesPathsSync (start) {
-var parts;
-if (start === '/') parts = [ '' ];
-else parts = path.normalize(start).split('/');
-
-var dirs = [];
-for (var i = parts.length - 1; i >= 0; i--) {
-if (parts[i] === 'node_modules') continue;
-var dir = parts.slice(0, i + 1).join('/') + '/node_modules';
-dirs.push(dir);
-}
-
-return dirs;
-}
-};
-})();
-
-require.alias = function (from, to) {
-var path = require.modules.path();
-var res = null;
-try {
-res = require.resolve(from + '/package.json', '/');
-}
-catch (err) {
-res = require.resolve(from, '/');
-}
-var basedir = path.dirname(res);
-
-var keys = (Object.keys || function (obj) {
-var res = [];
-for (var key in obj) res.push(key)
-return res;
-})(require.modules);
-
-for (var i = 0; i < keys.length; i++) {
-var key = keys[i];
-if (key.slice(0, basedir.length + 1) === basedir + '/') {
-var f = key.slice(basedir.length);
-require.modules[to + f] = require.modules[basedir + f];
-}
-else if (key === basedir) {
-require.modules[to] = require.modules[basedir];
-}
-}
-};
-
-require.define = function (filename, fn) {
-var dirname = require._core[filename]
-? ''
-: require.modules.path().dirname(filename)
-;
-
-var require_ = function (file) {
-return require(file, dirname)
-};
-require_.resolve = function (name) {

incubator-geode git commit: GEODE-2020: for rest api get request, use utf-8 as response encoding.

2016-10-21 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop af55d9292 -> fadd92b05


GEODE-2020: for rest api get request, use utf-8 as response encoding.

* add more test assertions.
* fix legacy 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/fadd92b0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/fadd92b0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/fadd92b0

Branch: refs/heads/develop
Commit: fadd92b0556ac6d3a48ffccbf64100fd94689e62
Parents: af55d92
Author: Jinmei Liao 
Authored: Thu Oct 20 15:28:50 2016 -0700
Committer: Jinmei Liao 
Committed: Fri Oct 21 10:37:54 2016 -0700

--
 .../rest/internal/web/GeodeRestClient.java  | 148 +++
 .../web/RestSecurityIntegrationTest.java| 410 ++-
 .../web/controllers/CommonCrudController.java   |   6 +-
 .../controllers/FunctionAccessController.java   |   2 +-
 .../web/controllers/PdxBasedCrudController.java |   4 +-
 .../web/controllers/QueryAccessController.java  |   4 +-
 6 files changed, 290 insertions(+), 284 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fadd92b0/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
new file mode 100644
index 000..c83cebb
--- /dev/null
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/GeodeRestClient.java
@@ -0,0 +1,148 @@
+/*
+ * 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.rest.internal.web;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.nio.charset.StandardCharsets;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpResponse;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.AuthCache;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpHead;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.auth.BasicScheme;
+import org.apache.http.impl.client.BasicAuthCache;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.json.JSONTokener;
+import org.junit.Assert;
+
+public class GeodeRestClient {
+
+  public final static String PROTOCOL = "http";
+  public final static String HOSTNAME = "localhost";
+  public final static String CONTEXT = "/geode/v1";
+
+  private int restPort = 0;
+  public GeodeRestClient(int restPort){
+this.restPort = restPort;
+  }
+
+  public HttpResponse doHEAD(String query, String username, String password) 
throws MalformedURLException {
+HttpHead httpHead = new HttpHead(CONTEXT + query);
+return doRequest(httpHead, username, password);
+  }
+
+  public HttpResponse doPost(String query, String username, String password, 
String body) throws MalformedURLException {
+HttpPost httpPost = new HttpPost(CONTEXT + query);
+httpPost.addHeader("content-type", "application/json");
+httpPost.setEntity(new StringEntity(body, StandardCharsets.UTF_8));
+return doRequest(httpPost, username, password);
+  }
+
+  public 

incubator-geode git commit: GEODE-1959: prompt for password when starting a server if username is specified

2016-10-20 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 11ef3ebbe -> b2e776859


GEODE-1959: prompt for password when starting a server if username is specified


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/b2e77685
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/b2e77685
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/b2e77685

Branch: refs/heads/develop
Commit: b2e77685907c51b1af346e6f8b8da3f5b598b361
Parents: 11ef3eb
Author: Jinmei Liao 
Authored: Tue Oct 18 09:13:26 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Oct 19 21:16:23 2016 -0700

--
 .../LauncherLifecycleCommandsDUnitTest.java | 22 ++
 .../geode/distributed/ServerLauncher.java   | 78 ++--
 .../membership/gms/membership/GMSJoinLeave.java |  7 +-
 .../cli/commands/LauncherLifecycleCommands.java | 29 +++-
 .../internal/cli/commands/ShellCommands.java| 48 +++-
 .../internal/cli/i18n/CliStrings.java   | 13 +++-
 .../management/internal/cli/shell/Gfsh.java | 41 ++
 .../cli/commands/golden-help-offline.properties |  9 +++
 8 files changed, 166 insertions(+), 81 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b2e77685/geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/LauncherLifecycleCommandsDUnitTest.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/LauncherLifecycleCommandsDUnitTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/LauncherLifecycleCommandsDUnitTest.java
index 490e309..933d152 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/LauncherLifecycleCommandsDUnitTest.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/LauncherLifecycleCommandsDUnitTest.java
@@ -437,6 +437,28 @@ public class LauncherLifecycleCommandsDUnitTest extends 
CliCommandTestBase {
   }
 
   @Test
+  public void testStartServerFailsFastOnMissingPassword() throws IOException {
+
+CommandStringBuilder command = new 
CommandStringBuilder(CliStrings.START_SERVER);
+
+String pathName = 
getClass().getSimpleName().concat("_").concat(getTestMethodName());
+final File workingDirectory = temporaryFolder.newFolder(pathName);
+
+command.addOption(CliStrings.START_SERVER__NAME, pathName);
+command.addOption(CliStrings.START_SERVER__DIR, 
workingDirectory.getCanonicalPath());
+command.addOption(CliStrings.START_SERVER__USERNAME, "test");
+
+CommandResult result = executeCommand(command.toString());
+
+assertNotNull(result);
+assertEquals(Result.Status.ERROR, result.getStatus());
+
+String resultString = toString(result);
+
+assertTrue(resultString, resultString.contains("password must be 
specified"));
+  }
+
+  @Test
   public void 
test005StartServerFailsFastOnMissingGemFireSecurityPropertiesFile() throws 
IOException {
 String gemfireSecuritiesPropertiesFile = 
"/path/to/missing/gemfire-securities.properties";
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b2e77685/geode-core/src/main/java/org/apache/geode/distributed/ServerLauncher.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/ServerLauncher.java 
b/geode-core/src/main/java/org/apache/geode/distributed/ServerLauncher.java
index a3d3845..088b670 100755
--- a/geode-core/src/main/java/org/apache/geode/distributed/ServerLauncher.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/ServerLauncher.java
@@ -19,6 +19,32 @@ package org.apache.geode.distributed;
 
 import static org.apache.geode.distributed.ConfigurationProperties.*;
 
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.ServiceLoader;
+import java.util.TreeMap;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
+
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+
+import joptsimple.OptionException;
+import joptsimple.OptionParser;
+import joptsimple.OptionSet;
+
 import org.apache.geode.SystemFailure;
 import 

incubator-geode git commit: GEODE-1983: Swagger is broken with integrated security

2016-10-19 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop ad43d4472 -> 7511ffac9


GEODE-1983: Swagger is broken with integrated security

* This required a simple configuration change.
* This closes #263


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/7511ffac
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/7511ffac
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/7511ffac

Branch: refs/heads/develop
Commit: 7511ffac940ef63850c5a3f83857efbae3ac3b18
Parents: ad43d44
Author: Kevin Duling 
Authored: Tue Oct 18 10:33:37 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Oct 19 12:36:34 2016 -0700

--
 .../internal/web/security/RestSecurityConfiguration.java | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/7511ffac/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
--
diff --git 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
index f3b5c4d..4550ff2 100644
--- 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
+++ 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityConfiguration.java
@@ -17,8 +17,6 @@
  */
 package org.apache.geode.rest.internal.web.security;
 
-import org.apache.geode.internal.security.IntegratedSecurityService;
-import org.apache.geode.internal.security.SecurityService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
@@ -31,6 +29,9 @@ import 
org.springframework.security.config.annotation.web.configuration.EnableWe
 import 
org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
 import org.springframework.security.config.http.SessionCreationPolicy;
 
+import org.apache.geode.internal.security.IntegratedSecurityService;
+import org.apache.geode.internal.security.SecurityService;
+
 @Configuration
 @EnableWebSecurity
 @EnableGlobalMethodSecurity(prePostEnabled = true)
@@ -56,8 +57,7 @@ public class RestSecurityConfiguration extends 
WebSecurityConfigurerAdapter {
   protected void configure(HttpSecurity http) throws Exception {
 
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
 .and()
-.authorizeRequests()
-.antMatchers("/ping").permitAll()
+.authorizeRequests().antMatchers("/ping", "/api-docs/**", 
"/docs/**").permitAll()
 .anyRequest().authenticated()
 .and()
 .formLogin()



incubator-geode git commit: GEODE-2004: Create/update/delete query through rest api should require DATA:READ instead of DATA:WRITE

2016-10-17 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 5abe957ca -> cf09ac94d


GEODE-2004: Create/update/delete query through rest api should require 
DATA:READ instead of DATA:WRITE

* This closes #262


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/cf09ac94
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/cf09ac94
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/cf09ac94

Branch: refs/heads/develop
Commit: cf09ac94ddbd3c0a8dca9a94eac53d95871f1691
Parents: 5abe957
Author: Kevin Duling 
Authored: Mon Oct 17 11:02:54 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 17 11:55:44 2016 -0700

--
 .../geode/rest/internal/web/RestSecurityIntegrationTest.java   | 6 +++---
 .../rest/internal/web/controllers/QueryAccessController.java   | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/cf09ac94/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
index ef019a4..6e91894 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
@@ -138,7 +138,7 @@ public class RestSecurityIntegrationTest {
 assertEquals(401, getCode(response));
 response = doPost("/queries?id=0=", "stranger", "1234567", "");
 assertEquals(403, getCode(response));
-response = doPost("/queries?id=0=", "dataWriter", "1234567", "");
+response = doPost("/queries?id=0=", "dataReader", "1234567", "");
 // because we're only testing the security of the endpoint, not the 
endpoint functionality, a 500 is acceptable
 assertEquals(500, getCode(response));
   }
@@ -149,7 +149,7 @@ public class RestSecurityIntegrationTest {
 assertEquals(401, getCode(response));
 response = doPost("/queries/id", "stranger", "1234567", "{\"id\" : 
\"foo\"}");
 assertEquals(403, getCode(response));
-response = doPost("/queries/id", "dataWriter", "1234567", "{\"id\" : 
\"foo\"}");
+response = doPost("/queries/id", "dataReader", "1234567", "{\"id\" : 
\"foo\"}");
 // because we're only testing the security of the endpoint, not the 
endpoint functionality, a 500 is acceptable
 assertEquals(500, getCode(response));
   }
@@ -160,7 +160,7 @@ public class RestSecurityIntegrationTest {
 assertEquals(401, getCode(response));
 response = doPut("/queries/id", "stranger", "1234567", "{\"id\" : 
\"foo\"}");
 assertEquals(403, getCode(response));
-response = doPut("/queries/id", "dataWriter", "1234567", "{\"id\" : 
\"foo\"}");
+response = doPut("/queries/id", "dataReader", "1234567", "{\"id\" : 
\"foo\"}");
 // We should get a 404 because we're trying to update a query that doesn't 
exist
 assertEquals(404, getCode(response));
   }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/cf09ac94/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/controllers/QueryAccessController.java
--
diff --git 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/controllers/QueryAccessController.java
 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/controllers/QueryAccessController.java
index e43e5e6..d13c99c 100644
--- 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/controllers/QueryAccessController.java
+++ 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/controllers/QueryAccessController.java
@@ -137,7 +137,7 @@ public class QueryAccessController extends 
AbstractBaseController {
 @ApiResponse( code = 409, message = "QueryId already assigned to other 
query." ),
 @ApiResponse( code = 500, message = "GemFire throws an error or 
exception." )
   } )
-  @PreAuthorize("@securityService.authorize('DATA', 'WRITE')")
+  @PreAuthorize("@securityService.authorize('DATA', 'READ')")
   public ResponseEntity create(@RequestParam("id") final String queryId,
   @RequestParam(value = "q", required = false) 
String oqlInUrl,
   @RequestBody(required = false) final String 
oqlInBody)
@@ -234,7 +234,7 @@ public class QueryAccessController extends 
AbstractBaseController {
   } )
   @ResponseBody
   @ResponseStatus(HttpStatus.OK)
-  

incubator-geode git commit: GEODE-1993: allow LocatorServerStartupRule to save server's ports as well.

2016-10-17 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 1fb0d0a9d -> 5abe957ca


GEODE-1993: allow LocatorServerStartupRule to save server's ports as well.

* added more tetss


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/5abe957c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/5abe957c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/5abe957c

Branch: refs/heads/develop
Commit: 5abe957ca1cd42eeaf82549c275711e6e94dddec
Parents: 1fb0d0a
Author: Jinmei Liao 
Authored: Mon Oct 17 08:08:39 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 17 08:08:39 2016 -0700

--
 .../ClusterConfigWithoutSecurityDUnitTest.java  |   4 +-
 .../security/PeerAuthenticatorDUnitTest.java|  63 
 ...eerSecurityWithEmbeddedLocatorDUnitTest.java | 102 +++
 .../SecurityClusterConfigDUnitTest.java |  10 +-
 .../SecurityWithoutClusterConfigDUnitTest.java  |   2 +-
 .../security/StartServerAuthorizationTest.java  |   4 +-
 .../dunit/rules/LocatorServerStartupRule.java   |  12 ++-
 .../LuceneClusterConfigurationDUnitTest.java|   2 +-
 8 files changed, 140 insertions(+), 59 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5abe957c/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
--
diff --git 
a/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
index 72dbd1a..1bbfa0f 100644
--- 
a/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
@@ -71,7 +71,7 @@ public class ClusterConfigWithoutSecurityDUnitTest extends 
JUnit4DistributedTest
 
 // initial security properties should only contain initial set of values
 ServerStarter serverStarter = new ServerStarter(props);
-serverStarter.startServer(lsRule.getLocatorPort(0));
+serverStarter.startServer(lsRule.getPort(0));
 DistributedSystem ds = serverStarter.cache.getDistributedSystem();
 
 // after cache is created, the configuration won't chagne
@@ -92,7 +92,7 @@ public class ClusterConfigWithoutSecurityDUnitTest extends 
JUnit4DistributedTest
 
 ServerStarter serverStarter = new ServerStarter(props);
 
-assertThatThrownBy(() -> 
serverStarter.startServer(lsRule.getLocatorPort(0)))
+assertThatThrownBy(() -> serverStarter.startServer(lsRule.getPort(0)))
   .isInstanceOf(GemFireConfigException.class)
   
.hasMessage(LocalizedStrings.GEMFIRE_CACHE_SECURITY_MISCONFIGURATION.toLocalizedString());
   }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5abe957c/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 bb147c7..b12ea43 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
@@ -20,73 +20,50 @@ package org.apache.geode.security;
 import static org.apache.geode.distributed.ConfigurationProperties.*;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
-import java.io.File;
 import java.util.Properties;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-import org.apache.geode.distributed.Locator;
-import org.apache.geode.distributed.internal.InternalDistributedSystem;
 import org.apache.geode.security.templates.DummyAuthenticator;
-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.LocatorServerStartupRule;
+import org.apache.geode.test.dunit.rules.ServerStarter;
 import org.apache.geode.test.junit.categories.DistributedTest;
 import org.apache.geode.test.junit.categories.SecurityTest;
 
 @Category({ DistributedTest.class, SecurityTest.class })
 public class PeerAuthenticatorDUnitTest extends JUnit4DistributedTestCase {
-  protected VM locator = null;
-  protected VM server = null;
-  protected VM server1 = null;
+  @Rule
+  public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
 
   @Before
   public 

[2/3] incubator-geode git commit: GEODE-1993: refactor tests to use rules rather than abstract classes

2016-10-14 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/de621597/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshShellConnectionRule.java
--
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshShellConnectionRule.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshShellConnectionRule.java
index 4d1bae9..da7a883 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshShellConnectionRule.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshShellConnectionRule.java
@@ -25,10 +25,11 @@ import 
org.apache.geode.management.internal.cli.result.CommandResult;
 import org.apache.geode.management.internal.cli.result.ErrorResultData;
 import org.apache.geode.management.internal.cli.result.ResultBuilder;
 import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
+import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
 import org.apache.geode.test.junit.rules.DescribedExternalResource;
 
 /**
- * Class which eases the creation of MBeans for security testing. When 
combined with {@link JMXConnectionConfiguration}
+ * Class which eases the creation of MBeans for security testing. When 
combined with {@link ConnectionConfiguration}
  * it allows for the creation of per-test connections with different 
user/password combinations.
  */
 public class GfshShellConnectionRule extends DescribedExternalResource {
@@ -53,7 +54,7 @@ public class GfshShellConnectionRule extends 
DescribedExternalResource {
   }
 
   protected void before(Description description) throws Throwable {
-JMXConnectionConfiguration config = 
description.getAnnotation(JMXConnectionConfiguration.class);
+ConnectionConfiguration config = 
description.getAnnotation(ConnectionConfiguration.class);
 if(config==null)
   return;
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/de621597/geode-core/src/test/java/org/apache/geode/management/internal/security/JMXConnectionConfiguration.java
--
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/JMXConnectionConfiguration.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/JMXConnectionConfiguration.java
deleted file mode 100644
index 4f57baa..000
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/JMXConnectionConfiguration.java
+++ /dev/null
@@ -1,33 +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.management.internal.security;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * This annotation is intended to be used with {@link 
MBeanServerConnectionRule} in order to configure a per-test JMX
- * connection with a specific user and password.
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
-public @interface JMXConnectionConfiguration {
-  String user();
-  String password();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/de621597/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
--
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
index c544e6f..e885344 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
@@ -23,11 +23,13 @@ import static org.junit.Assert.*;
 
 import java.util.Properties;
 
+import org.junit.After;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-import org.apache.geode.cache.CacheFactory;
 import 

[1/3] incubator-geode git commit: GEODE-1993: refactor tests to use rules rather than abstract classes

2016-10-14 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop b06599353 -> de6215978


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/de621597/geode-cq/src/test/java/org/apache/geode/security/CQClientAuthDunitTest.java
--
diff --git 
a/geode-cq/src/test/java/org/apache/geode/security/CQClientAuthDunitTest.java 
b/geode-cq/src/test/java/org/apache/geode/security/CQClientAuthDunitTest.java
index 2386af1..cc0a191 100644
--- 
a/geode-cq/src/test/java/org/apache/geode/security/CQClientAuthDunitTest.java
+++ 
b/geode-cq/src/test/java/org/apache/geode/security/CQClientAuthDunitTest.java
@@ -43,8 +43,10 @@ import org.apache.geode.test.junit.categories.SecurityTest;
 @Category({ DistributedTest.class, SecurityTest.class })
 public class CQClientAuthDunitTest extends AbstractSecureServerDUnitTest {
 
-  public CQClientAuthDunitTest(){
-this.postProcessor = SamplePostProcessor.class;
+  public Properties getProperties(){
+Properties  properties = super.getProperties();
+properties.setProperty(SECURITY_POST_PROCESSOR, 
SamplePostProcessor.class.getName());
+return properties;
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/de621597/geode-cq/src/test/java/org/apache/geode/security/CQPDXPostProcessorDUnitTest.java
--
diff --git 
a/geode-cq/src/test/java/org/apache/geode/security/CQPDXPostProcessorDUnitTest.java
 
b/geode-cq/src/test/java/org/apache/geode/security/CQPDXPostProcessorDUnitTest.java
index 12f08ec..470b722 100644
--- 
a/geode-cq/src/test/java/org/apache/geode/security/CQPDXPostProcessorDUnitTest.java
+++ 
b/geode-cq/src/test/java/org/apache/geode/security/CQPDXPostProcessorDUnitTest.java
@@ -17,11 +17,14 @@
 
 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.Map;
+import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
 import com.jayway.awaitility.Awaitility;
@@ -53,6 +56,7 @@ import 
org.apache.geode.test.junit.runners.CategoryWithParameterizedRunnerFactor
 
@Parameterized.UseParametersRunnerFactory(CategoryWithParameterizedRunnerFactory.class)
 public class CQPDXPostProcessorDUnitTest extends AbstractSecureServerDUnitTest 
{
   private static byte[] BYTES = {1,0};
+  private static int jmxPort = AvailablePortHelper.getRandomAvailableTCPPort();
 
   @Parameterized.Parameters
   public static Collection parameters(){
@@ -60,11 +64,20 @@ public class CQPDXPostProcessorDUnitTest extends 
AbstractSecureServerDUnitTest {
 return Arrays.asList(params);
   }
 
+  public Properties getProperties(){
+Properties  properties = super.getProperties();
+properties.setProperty(SECURITY_POST_PROCESSOR, 
PDXPostProcessor.class.getName());
+properties.setProperty("security-pdx", pdxPersistent+"");
+properties.setProperty(JMX_MANAGER_PORT, jmxPort+"");
+return properties;
+  }
+
+  public Map getData(){
+return new HashMap();
+  }
+
   public CQPDXPostProcessorDUnitTest(boolean pdxPersistent){
-this.postProcessor = PDXPostProcessor.class;
 this.pdxPersistent = pdxPersistent;
-this.jmxPort = AvailablePortHelper.getRandomAvailableTCPPort();
-values = new HashMap();
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/de621597/geode-cq/src/test/java/org/apache/geode/security/CQPostProcessorDunitTest.java
--
diff --git 
a/geode-cq/src/test/java/org/apache/geode/security/CQPostProcessorDunitTest.java
 
b/geode-cq/src/test/java/org/apache/geode/security/CQPostProcessorDunitTest.java
index e2b555a..32632ef 100644
--- 
a/geode-cq/src/test/java/org/apache/geode/security/CQPostProcessorDunitTest.java
+++ 
b/geode-cq/src/test/java/org/apache/geode/security/CQPostProcessorDunitTest.java
@@ -17,8 +17,11 @@
 
 package org.apache.geode.security;
 
+import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
 import static org.junit.Assert.*;
 
+import java.util.Properties;
+
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -40,10 +43,13 @@ import org.apache.geode.test.junit.categories.SecurityTest;
 @Category({ DistributedTest.class, SecurityTest.class })
 public class CQPostProcessorDunitTest extends AbstractSecureServerDUnitTest {
 
-  public CQPostProcessorDunitTest(){
-this.postProcessor = SamplePostProcessor.class;
+  public Properties getProperties(){
+Properties  properties = super.getProperties();
+properties.setProperty(SECURITY_POST_PROCESSOR, 
SamplePostProcessor.class.getName());
+return properties;
   }
 
+
   @Test
   public void testPostProcess(){
 String query = "select * from 

incubator-geode git commit: GEODE-1466 : Added TemporaryFileRule JUnit rule for tests that need to create files in a particular directory.

2016-10-14 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 8a0803230 -> b06599353


GEODE-1466 : Added TemporaryFileRule JUnit rule for tests that need to create 
files in a particular directory.

* This closes #260


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/b0659935
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/b0659935
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/b0659935

Branch: refs/heads/develop
Commit: b06599353d40ae4b54282c71aba9df57411e2704
Parents: 8a08032
Author: Jared Stewart 
Authored: Thu Oct 13 16:50:35 2016 -0700
Committer: Jinmei Liao 
Committed: Fri Oct 14 12:00:03 2016 -0700

--
 geode-junit/build.gradle|   5 +-
 .../test/junit/rules/TemporaryFileRule.java | 111 
 .../test/junit/rules/TemporaryFileRuleTest.java | 130 +++
 3 files changed, 245 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b0659935/geode-junit/build.gradle
--
diff --git a/geode-junit/build.gradle b/geode-junit/build.gradle
index 3e4eb22..f7e5e46 100755
--- a/geode-junit/build.gradle
+++ b/geode-junit/build.gradle
@@ -17,7 +17,10 @@
 
 dependencies {
   testCompile 'commons-lang:commons-lang:' + project.'commons-lang.version'
-  compile ('junit:junit:' + project.'junit.version') {
+  testCompile 'com.google.guava:guava:' + project.'guava.version'
+  testCompile 'org.assertj:assertj-core:' + project.'assertj-core.version'
+
+  compile('junit:junit:' + project.'junit.version') {
 exclude module: 'hamcrest-core'
   }
   compile 'org.hamcrest:hamcrest-all:' + project.'hamcrest-all.version'

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b0659935/geode-junit/src/main/java/org/apache/geode/test/junit/rules/TemporaryFileRule.java
--
diff --git 
a/geode-junit/src/main/java/org/apache/geode/test/junit/rules/TemporaryFileRule.java
 
b/geode-junit/src/main/java/org/apache/geode/test/junit/rules/TemporaryFileRule.java
new file mode 100644
index 000..bd2cac2
--- /dev/null
+++ 
b/geode-junit/src/main/java/org/apache/geode/test/junit/rules/TemporaryFileRule.java
@@ -0,0 +1,111 @@
+/*
+ * 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.test.junit.rules;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.Objects;
+import java.util.Set;
+
+import org.junit.rules.ExternalResource;
+
+
+/**
+ * A {@link org.junit.rules.TestRule} to create temporary files in a given 
directory that should be
+ * deleted when the test method finishes.  This is useful in place of {@link 
org.junit.rules.TemporaryFolder} when a test needs
+ * to create files in a particular directory, for example user.home or 
user.dir.
+ *
+ * Example of usage:
+ * 
+ * public static class HasTemporaryFile {
+ *  Rule
+ *  public TemporaryFileRule temporaryFileRule = 
TemporaryFileRule.inUserHome();
+ *
+ *  Test
+ *  public void testUsingTempFolder() throws IOException {
+ *  File createdFile= temporaryFileRule.newFile(myfile.txt);
+ *  File createdFile= temporaryFileRule.newFile(myfile2.txt);
+ *  // ...
+ * }
+ * }
+ * 
+ */
+public class TemporaryFileRule extends ExternalResource {
+
+  private final String directory;
+
+  private Set files;
+
+  private TemporaryFileRule(String parentDirectory) {
+this.directory = parentDirectory;
+  }
+
+  public static TemporaryFileRule inUserHome() {
+return new TemporaryFileRule(System.getProperty("user.home"));
+  }
+
+  public static TemporaryFileRule inCurrentDir() {
+return new TemporaryFileRule(System.getProperty("user.dir"));
+  }
+
+  public static TemporaryFileRule inDirectory(String directory) {
+return new TemporaryFileRule(directory);
+  }
+
+  @Override
+  public void before() {
+files = 

incubator-geode git commit: GEODE-999: remove accidentally checked in file.

2016-10-13 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 313bbab55 -> 582694d3d


GEODE-999: remove accidentally checked in file.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/582694d3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/582694d3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/582694d3

Branch: refs/heads/develop
Commit: 582694d3d67511095531abc43f0646c22b038c7f
Parents: 313bbab
Author: Jinmei Liao 
Authored: Thu Oct 13 09:01:34 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Oct 13 09:01:34 2016 -0700

--
 .../test/gemfire-jstewartgeode999-files.tgz   | Bin 877528 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/582694d3/artifacts-jstewartgeode999/test/gemfire-jstewartgeode999-files.tgz
--
diff --git a/artifacts-jstewartgeode999/test/gemfire-jstewartgeode999-files.tgz 
b/artifacts-jstewartgeode999/test/gemfire-jstewartgeode999-files.tgz
deleted file mode 100644
index a15d245..000
Binary files 
a/artifacts-jstewartgeode999/test/gemfire-jstewartgeode999-files.tgz and 
/dev/null differ



[4/6] incubator-geode git commit: GEODE-999: Converted from Firefox driver to PhantomJS driver to run UITests in headless mode

2016-10-12 Thread jinmeiliao
GEODE-999: Converted from Firefox driver to PhantomJS driver to run UITests in 
headless mode

* Moved pulse ui tests into their own package.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/dfb87a59
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/dfb87a59
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/dfb87a59

Branch: refs/heads/develop
Commit: dfb87a591ef33e1a0f4e4b5299c21685cef2f25e
Parents: e15657e
Author: Jared Stewart 
Authored: Mon Oct 3 14:15:59 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Oct 12 09:46:53 2016 -0700

--
 .gitignore  |3 +
 .../test/gemfire-jstewartgeode999-files.tgz |  Bin 0 -> 877528 bytes
 geode-pulse/build.gradle|5 +
 .../tools/pulse/testbed/driver/PulseUITest.java |2 +-
 .../pulse/tests/DataBrowserResultLoader.java|2 +
 .../tools/pulse/tests/PulseAbstractTest.java| 1048 --
 .../geode/tools/pulse/tests/PulseAuthTest.java  |   33 -
 .../tools/pulse/tests/PulseAutomatedTest.java   |  784 -
 .../geode/tools/pulse/tests/PulseBaseTest.java  |  693 
 .../tools/pulse/tests/PulseNoAuthTest.java  |   33 -
 .../tools/pulse/tests/ui/PulseAbstractTest.java |  978 
 .../tools/pulse/tests/ui/PulseAuthTest.java |   34 +
 .../pulse/tests/ui/PulseAutomatedTest.java  |  768 +
 .../tools/pulse/tests/ui/PulseBaseTest.java |  697 
 .../tools/pulse/tests/ui/PulseNoAuthTest.java   |   34 +
 gradle/dependency-versions.properties   |1 +
 16 files changed, 2523 insertions(+), 2592 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/dfb87a59/.gitignore
--
diff --git a/.gitignore b/.gitignore
index 825e379..38c8131 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,8 @@ build/
 build-eclipse/
 /tags
 
+
+
 *.iml
 *.ipr
 *.iws
@@ -25,3 +27,4 @@ build-eclipse/
 *.orig
 geode-spark-connector/**/target/
 geode-spark-connector/project/project/
+geode-pulse/screenshots/
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/dfb87a59/artifacts-jstewartgeode999/test/gemfire-jstewartgeode999-files.tgz
--
diff --git a/artifacts-jstewartgeode999/test/gemfire-jstewartgeode999-files.tgz 
b/artifacts-jstewartgeode999/test/gemfire-jstewartgeode999-files.tgz
new file mode 100644
index 000..a15d245
Binary files /dev/null and 
b/artifacts-jstewartgeode999/test/gemfire-jstewartgeode999-files.tgz differ

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/dfb87a59/geode-pulse/build.gradle
--
diff --git a/geode-pulse/build.gradle b/geode-pulse/build.gradle
index c58da78..ef29ab3 100755
--- a/geode-pulse/build.gradle
+++ b/geode-pulse/build.gradle
@@ -68,6 +68,11 @@ dependencies {
   testCompile project(':geode-core')
   testCompile files(project(':geode-core').sourceSets.test.output)
 
+  testCompile(group: 'com.codeborne', name: 'phantomjsdriver', version: 
project.'phantomjsdriver.version') {
+  exclude module: 'selenium-remote-driver' //by artifact name
+  exclude module: 'selenium-java' //by artifact name
+  }
+
   testCompile 'org.seleniumhq.selenium:selenium-firefox-driver:' + 
project.'selenium.version'
   testCompile 'org.seleniumhq.selenium:selenium-api:' + 
project.'selenium.version'
   testCompile 'org.seleniumhq.selenium:selenium-remote-driver:' + 
project.'selenium.version'

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/dfb87a59/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
--
diff --git 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
index a4062e5..ced298b 100644
--- 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
+++ 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.geode.tools.pulse.testbed.driver;
 
-import static org.apache.geode.tools.pulse.tests.PulseAbstractTest.*;
+import static org.apache.geode.tools.pulse.tests.ui.PulseAbstractTest.*;
 import static org.junit.Assert.*;
 
 import java.net.InetAddress;


[1/6] incubator-geode git commit: GEODE-999: Converted from Firefox driver to PhantomJS driver to run UITests in headless mode

2016-10-12 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop e15657e9d -> a78fa7537


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/dfb87a59/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseBaseTest.java
--
diff --git 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseBaseTest.java
 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseBaseTest.java
new file mode 100644
index 000..8cfac53
--- /dev/null
+++ 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseBaseTest.java
@@ -0,0 +1,697 @@
+/*
+ * 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.tools.pulse.tests.ui;
+
+import static org.junit.Assert.*;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.concurrent.TimeUnit;
+
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.interactions.Actions;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+import org.apache.geode.tools.pulse.tests.JMXProperties;
+import org.apache.geode.tools.pulse.tests.Member;
+import org.apache.geode.tools.pulse.tests.PulseTestData;
+import org.apache.geode.tools.pulse.tests.PulseTestLocators;
+import org.apache.geode.tools.pulse.tests.Region;
+
+public class PulseBaseTest {
+
+  public static int maxWaitTime = 20;
+
+  WebElement element = null;
+
+   public WebElement findElementUsingId(String id) {
+   return PulseAbstractTest.driver.findElement(By.id(id));
+   }
+   public WebElement findElementUsingXpath(String xpath) {
+   return PulseAbstractTest.driver.findElement(By.xpath(xpath));
+   }
+
+   public void clickElementUsingId(String id) {
+   findElementUsingId(id).click();
+   }
+
+   public void clickElementUsingXpath(String xpath) {
+   findElementUsingXpath(xpath).click();
+   }
+
+   public void enterTextUsingId(String id, String textToEnter) {
+   findElementUsingId(id).sendKeys(textToEnter);
+
+   }
+
+   public void enterTextUsingXpath(String xpath, String textToEnter) {
+   findElementUsingXpath(xpath).sendKeys(textToEnter);
+   }
+
+   public String getValueFromPropertiesFile(String key) {
+   return JMXProperties.getInstance().getProperty(key);
+   }
+
+   public void sendKeysUsingId(String Id, String textToEnter){
+   findElementById(Id).sendKeys(textToEnter);
+   }
+
+   public void waitForElement(WebElement element) {
+   PulseAbstractTest.driver.manage().timeouts().implicitlyWait(0, 
TimeUnit.SECONDS);
+   WebDriverWait wait = new 
WebDriverWait(PulseAbstractTest.driver, 20);
+   wait.until(ExpectedConditions.visibilityOf(element));
+   }
+
+   public WebElement findElementById(String id) {
+   return PulseAbstractTest.driver.findElement(By.id(id));
+   }
+
+   public WebElement findElementByXpath(String xpath) {
+   return PulseAbstractTest.driver.findElement(By.xpath(xpath));
+   }
+
+   public String getTextUsingXpath(String xpath) {
+   return findElementByXpath(xpath).getText();
+   }
+
+   public String getTextUsingId(String id) {
+   return findElementById(id).getText();
+   }
+
+   public String getPersistanceEnabled(Region r) {
+   String persitance = null;
+
+   if (r.getPersistentEnabled()) {
+   persitance = "ON";
+   } else if (!r.getPersistentEnabled()) {
+   persitance = "OFF";
+   }
+   return persitance;
+   }
+
+   public String getPersistanceEnabled(String trueOrFalse) {
+   String persitance = null;
+
+   if (trueOrFalse.contains("true")) {
+   persitance = "ON";
+   } else if (trueOrFalse.contains("false")) {
+   

[5/6] incubator-geode git commit: GEODE-1966: Unauthorized users cannot access pulseVersion details

2016-10-12 Thread jinmeiliao
GEODE-1966: Unauthorized users cannot access pulseVersion details


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/6054e004
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/6054e004
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/6054e004

Branch: refs/heads/develop
Commit: 6054e00431b1e3a0826b1e6937c867da3fb6e6ce
Parents: dfb87a5
Author: Jared Stewart 
Authored: Mon Oct 10 16:59:07 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Oct 12 09:47:10 2016 -0700

--
 .../src/main/webapp/WEB-INF/spring-security.xml |   1 -
 .../tools/pulse/tests/ui/PulseAbstractTest.java |  11 +-
 .../pulse/tests/ui/PulseAnonymousUserTest.java  | 149 +++
 3 files changed, 158 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6054e004/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml
--
diff --git a/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml 
b/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml
index 7efc356..b4fccf0 100644
--- a/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml
+++ b/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml
@@ -28,7 +28,6 @@



-   




http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6054e004/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java
--
diff --git 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java
 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java
index 709a831..ad8f67b 100644
--- 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java
+++ 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java
@@ -198,7 +198,7 @@ public abstract class PulseAbstractTest extends 
PulseBaseTest {
 passwordElement.sendKeys(password);
 passwordElement.submit();
 
-Thread.sleep(3000);
+driver.get(pulseURL + "/clusterDetail.html");
 WebElement userNameOnPulsePage = (new WebDriverWait(driver, 10)).until(new 
ExpectedCondition() {
   @Override
   public WebElement apply(WebDriver d) {
@@ -207,7 +207,6 @@ public abstract class PulseAbstractTest extends 
PulseBaseTest {
 });
 assertNotNull(userNameOnPulsePage);
 driver.navigate().refresh();
-Thread.sleep(7000);
   }
 
   private static void setUpWebDriver() {
@@ -229,6 +228,7 @@ public abstract class PulseAbstractTest extends 
PulseBaseTest {
 
   @Before
   public void setup() throws Exception {
+driver.get(pulseURL + "/clusterDetail.html");
 // Make sure we go to the home page first
 
searchByXPathAndClick(PulseTestLocators.TopNavigation.clusterViewLinkXpath);
   }
@@ -975,4 +975,11 @@ public abstract class PulseAbstractTest extends 
PulseBaseTest {
 // Assert data regions are displayed
 assertTrue(driver.findElement(By.id("treeDemo_1")).isDisplayed());
   }
+
+  @Test
+  public void userCannotGetToPulseDetails() {
+driver.get(pulseURL + "/pulse/pulseVersion");
+
+assertTrue(driver.getPageSource().contains("sourceRevision"));
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6054e004/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAnonymousUserTest.java
--
diff --git 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAnonymousUserTest.java
 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAnonymousUserTest.java
new file mode 100644
index 000..1cf4ad4
--- /dev/null
+++ 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAnonymousUserTest.java
@@ -0,0 +1,149 @@
+/*
+ * 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 

[2/6] incubator-geode git commit: GEODE-999: Converted from Firefox driver to PhantomJS driver to run UITests in headless mode

2016-10-12 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/dfb87a59/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java
--
diff --git 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java
 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java
new file mode 100644
index 000..709a831
--- /dev/null
+++ 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java
@@ -0,0 +1,978 @@
+/*
+ * 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.tools.pulse.tests.ui;
+
+import static org.junit.Assert.*;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.text.DecimalFormat;
+import java.util.List;
+import java.util.Properties;
+import java.util.concurrent.TimeUnit;
+
+import com.jayway.awaitility.Awaitility;
+import org.apache.commons.io.FileUtils;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestRule;
+import org.junit.rules.TestWatcher;
+import org.junit.runner.Description;
+import org.openqa.selenium.By;
+import org.openqa.selenium.JavascriptExecutor;
+import org.openqa.selenium.OutputType;
+import org.openqa.selenium.TakesScreenshot;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.interactions.Actions;
+import org.openqa.selenium.phantomjs.PhantomJSDriver;
+import org.openqa.selenium.remote.DesiredCapabilities;
+import org.openqa.selenium.support.ui.ExpectedCondition;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+import org.apache.geode.internal.admin.SSLConfig;
+import org.apache.geode.management.internal.JettyHelper;
+import org.apache.geode.test.junit.rules.RetryRule;
+import org.apache.geode.tools.pulse.internal.data.PulseConstants;
+import org.apache.geode.tools.pulse.tests.JMXProperties;
+import org.apache.geode.tools.pulse.tests.PulseTestLocators;
+import org.apache.geode.tools.pulse.tests.Server;
+
+@SuppressWarnings("deprecated")
+public abstract class PulseAbstractTest extends PulseBaseTest {
+
+  private static String jmxPropertiesFile;
+  private static String path;
+
+  private static org.eclipse.jetty.server.Server jetty = null;
+  private static Server server = null;
+  private static String pulseURL = null;
+  public static WebDriver driver;
+
+  /* Constants for executing Data Browser queries */
+  public static final String QUERY_TYPE_ONE = "query1";
+  public static final String QUERY_TYPE_TWO = "query2";
+  public static final String QUERY_TYPE_THREE = "query3";
+  public static final String QUERY_TYPE_FOUR = "query4";
+  public static final String QUERY_TYPE_FIVE = "query5";
+  public static final String QUERY_TYPE_SIX = "query6";
+  public static final String QUERY_TYPE_SEVENE = "query7";
+
+  private static final String DATA_VIEW_LABEL = "Data View";
+  private static final String CLUSTER_VIEW_MEMBERS_ID = 
"clusterTotalMembersText";
+  private static final String CLUSTER_VIEW_SERVERS_ID = "clusterServersText";
+  private static final String CLUSTER_VIEW_LOCATORS_ID = "clusterLocatorsText";
+  private static final String CLUSTER_VIEW_REGIONS_ID = 
"clusterTotalRegionsText";
+  private static final String CLUSTER_CLIENTS_ID = "clusterClientsText";
+  private static final String CLUSTER_FUNCTIONS_ID = "clusterFunctions";
+  private static final String CLUSTER_UNIQUECQS_ID = "clusterUniqueCQs";
+  private static final String CLUSTER_SUBSCRIPTION_ID = 
"clusterSubscriptionsText";
+  private static final String CLUSTER_MEMORY_USAGE_ID = "currentMemoryUsage";
+  private static final String CLUSTER_THROUGHPUT_WRITES_ID = 
"currentThroughputWrites";
+  private static final String CLUSTER_GCPAUSES_ID = "currentGCPauses";
+  private static final String CLUSTER_WRITEPERSEC_ID = "writePerSec";
+  private static final String CLUSTER_READPERSEC_ID = "readPerSec";
+  private static final 

[6/6] incubator-geode git commit: GEODE-1532: Fix Pulse Clickjacking vuln.

2016-10-12 Thread jinmeiliao
GEODE-1532: Fix Pulse Clickjacking vuln.

* Removed firefox driver dependency
* This closes #256


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/a78fa753
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/a78fa753
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/a78fa753

Branch: refs/heads/develop
Commit: a78fa7537dfd656521649d57245ecd7fa05b2d31
Parents: 6054e00
Author: Jared Stewart 
Authored: Mon Oct 10 18:48:01 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Oct 12 09:52:40 2016 -0700

--
 geode-pulse/build.gradle |  1 -
 geode-pulse/src/main/webapp/WEB-INF/spring-security.xml  |  5 +
 .../geode/tools/pulse/testbed/driver/PulseUITest.java| 11 +--
 3 files changed, 14 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a78fa753/geode-pulse/build.gradle
--
diff --git a/geode-pulse/build.gradle b/geode-pulse/build.gradle
index ef29ab3..3d19dea 100755
--- a/geode-pulse/build.gradle
+++ b/geode-pulse/build.gradle
@@ -73,7 +73,6 @@ dependencies {
   exclude module: 'selenium-java' //by artifact name
   }
 
-  testCompile 'org.seleniumhq.selenium:selenium-firefox-driver:' + 
project.'selenium.version'
   testCompile 'org.seleniumhq.selenium:selenium-api:' + 
project.'selenium.version'
   testCompile 'org.seleniumhq.selenium:selenium-remote-driver:' + 
project.'selenium.version'
   testCompile 'org.seleniumhq.selenium:selenium-support:' + 
project.'selenium.version'

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a78fa753/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml
--
diff --git a/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml 
b/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml
index b4fccf0..2842f64 100644
--- a/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml
+++ b/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml
@@ -47,6 +47,11 @@

+   
+   
+   
+   
+   




http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a78fa753/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
--
diff --git 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
index ced298b..5a02edc 100644
--- 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
+++ 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
@@ -31,7 +31,8 @@ import org.junit.experimental.categories.Category;
 import org.openqa.selenium.By;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
-import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.phantomjs.PhantomJSDriver;
+import org.openqa.selenium.remote.DesiredCapabilities;
 import org.openqa.selenium.support.ui.ExpectedCondition;
 import org.openqa.selenium.support.ui.WebDriverWait;
 
@@ -77,7 +78,13 @@ public class PulseUITest {
 
 pulseURL = "http://; + host + ":" + port + context;
 Thread.sleep(1000); //wait till tomcat settles down
-driver = new FirefoxDriver();
+
+DesiredCapabilities capabilities = new DesiredCapabilities();
+capabilities.setJavascriptEnabled(true);
+capabilities.setCapability("takesScreenshot", true);
+capabilities.setCapability("phantomjs.page.settings.userAgent", 
"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:16.0) Gecko/20121026 
Firefox/16.0");
+
+driver = new PhantomJSDriver(capabilities);
 driver.manage().window().maximize();//required to make all elements visible
 
 Thread.sleep(5000); //wait till pulse starts polling threads...



incubator-geode git commit: GEODE-1979: refactor SecurityClusterConfig to remove the flakiness.

2016-10-12 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 584337b32 -> e15657e9d


GEODE-1979: refactor SecurityClusterConfig to remove the flakiness.

* add more test cases to cover more scenarios


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/e15657e9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/e15657e9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/e15657e9

Branch: refs/heads/develop
Commit: e15657e9de8bffdc8fa25249fcee86c46ce79928
Parents: 584337b
Author: Jinmei Liao 
Authored: Tue Oct 11 09:43:33 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Oct 12 09:42:04 2016 -0700

--
 .../ClusterConfigWithoutSecurityDUnitTest.java  | 102 ++
 .../SecurityClusterConfigDUnitTest.java | 107 +--
 .../SecurityWithoutClusterConfigDUnitTest.java  |  92 
 .../security/StartServerAuthorizationTest.java  |  73 +
 .../rules/LocatorServerConfigurationRule.java   |  79 +++---
 .../LuceneClusterConfigurationDUnitTest.java|  24 +
 6 files changed, 223 insertions(+), 254 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e15657e9/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
--
diff --git 
a/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
new file mode 100644
index 000..3854bb1
--- /dev/null
+++ 
b/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
@@ -0,0 +1,102 @@
+/*
+ * 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.distributed.ConfigurationProperties.*;
+import static org.assertj.core.api.Java6Assertions.*;
+import static org.junit.Assert.*;
+
+import java.util.Properties;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import org.apache.geode.GemFireConfigException;
+import org.apache.geode.cache.CacheFactory;
+import org.apache.geode.distributed.internal.InternalDistributedSystem;
+import org.apache.geode.internal.i18n.LocalizedStrings;
+import org.apache.geode.security.templates.SimpleSecurityManager;
+import org.apache.geode.test.dunit.IgnoredException;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
+import org.apache.geode.test.dunit.rules.LocatorServerConfigurationRule;
+import org.apache.geode.test.junit.categories.DistributedTest;
+import org.apache.geode.test.junit.categories.SecurityTest;
+
+@Category({ DistributedTest.class, SecurityTest.class })
+
+public class ClusterConfigWithoutSecurityDUnitTest extends 
JUnit4DistributedTestCase {
+
+  @Rule
+  public LocatorServerConfigurationRule lsRule = new 
LocatorServerConfigurationRule(this);
+
+  @Before
+  public void before() throws Exception {
+
IgnoredException.addIgnoredException(LocalizedStrings.GEMFIRE_CACHE_SECURITY_MISCONFIGURATION.toString());
+
IgnoredException.addIgnoredException(LocalizedStrings.GEMFIRE_CACHE_SECURITY_MISCONFIGURATION_2.toString());
+lsRule.getLocatorVM(new Properties());
+  }
+
+  @After
+  public void after() {
+IgnoredException.removeAllExpectedExceptions();
+  }
+
+  // when locator is not secured, a secured server should be allowed to start 
with its own security manager
+  // if use-cluster-config is false
+  @Test
+  public void 
serverShouldBeAllowedToStartWithSecurityIfNotUsingClusterConfig() throws 
Exception {
+Properties props = new Properties();
+props.setProperty(SECURITY_MANAGER, SimpleSecurityManager.class.getName());
+props.setProperty(SECURITY_POST_PROCESSOR, 
PDXPostProcessor.class.getName());
+
+

incubator-geode git commit: GEODE-1986: correctly set the flag indicating if cluster configuration service is running or not on a locator.

2016-10-12 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop f079f3709 -> 584337b32


GEODE-1986: correctly set the flag indicating if cluster configuration service 
is running or not on a locator.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/584337b3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/584337b3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/584337b3

Branch: refs/heads/develop
Commit: 584337b323b3713ec95dbb8934862dc83a65757f
Parents: f079f37
Author: Jinmei Liao 
Authored: Tue Oct 11 14:01:33 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Oct 12 09:40:26 2016 -0700

--
 .../internal/InternalDistributedSystem.java | 68 +++-
 .../geode/internal/cache/GemFireCacheImpl.java  |  6 +-
 ...lusterConfigWithEmbededLocatorDUnitTest.java | 67 +++
 3 files changed, 107 insertions(+), 34 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/584337b3/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java
index 17303c1..848a86e 100644
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java
@@ -98,15 +98,13 @@ import org.apache.geode.internal.offheap.MemoryAllocator;
 import org.apache.geode.internal.offheap.OffHeapStorage;
 import org.apache.geode.internal.statistics.DummyStatisticsImpl;
 import org.apache.geode.internal.statistics.GemFireStatSampler;
-import org.apache.geode.internal.statistics.platform.LinuxProcFsStatistics;
 import org.apache.geode.internal.statistics.LocalStatisticsImpl;
-import org.apache.geode.internal.statistics.platform.OsStatisticsFactory;
 import org.apache.geode.internal.statistics.StatisticsImpl;
 import org.apache.geode.internal.statistics.StatisticsManager;
 import org.apache.geode.internal.statistics.StatisticsTypeFactoryImpl;
+import org.apache.geode.internal.statistics.platform.LinuxProcFsStatistics;
+import org.apache.geode.internal.statistics.platform.OsStatisticsFactory;
 import org.apache.geode.internal.tcp.ConnectionTable;
-import org.apache.geode.internal.util.concurrent.StoppableCondition;
-import org.apache.geode.internal.util.concurrent.StoppableReentrantLock;
 import org.apache.geode.management.ManagementException;
 import org.apache.geode.security.GemFireSecurityException;
 
@@ -733,39 +731,45 @@ public class InternalDistributedSystem extends 
DistributedSystem implements OsSt
*/
   private void startInitLocator() throws InterruptedException {
 String locatorString = this.originalConfig.getStartLocator();
-if (locatorString.length() > 0) {
-  // when reconnecting we don't want to join with a colocated locator 
unless
-  // there is a quorum of the old members available
-  if (attemptingToReconnect && !this.isConnected) {
-if (this.quorumChecker != null) {
-  logger.info("performing a quorum check to see if location services 
can be started early");
-  if (!quorumChecker.checkForQuorum(3 * 
this.config.getMemberTimeout())) {
-logger.info("quorum check failed - not allowing location services 
to start early");
-return;
-  }
-  logger.info("Quorum check passed - allowing location services to 
start early");
+if (locatorString.length()==0) {
+  return;
+}
+
+// when reconnecting we don't want to join with a colocated locator unless
+// there is a quorum of the old members available
+if (attemptingToReconnect && !this.isConnected) {
+  if (this.quorumChecker != null) {
+logger.info("performing a quorum check to see if location services can 
be started early");
+if (!quorumChecker.checkForQuorum(3 * this.config.getMemberTimeout())) 
{
+  logger.info("quorum check failed - not allowing location services to 
start early");
+  return;
 }
+logger.info("Quorum check passed - allowing location services to start 
early");
   }
-  DistributionLocatorId locId = new DistributionLocatorId(locatorString);
-  try {
-this.startedLocator = InternalLocator.createLocator(locId.getPort(), 
null, null, this.logWriter, // LOG: this is after IDS has created 
LogWriterLoggers and Appenders
-  this.securityLogWriter, // LOG: this is after IDS has created 
LogWriterLoggers and 

[1/2] incubator-geode git commit: GEODE-1570: improve rest security framework

2016-10-11 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 280d2d8f7 -> 29e494803


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/29e49480/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityService.java
--
diff --git 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityService.java
 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityService.java
new file mode 100644
index 000..3d09f09
--- /dev/null
+++ 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/RestSecurityService.java
@@ -0,0 +1,56 @@
+/*
+ * 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.rest.internal.web.security;
+
+import org.springframework.stereotype.Component;
+
+import org.apache.geode.internal.security.SecurityService;
+import org.apache.geode.security.GemFireSecurityException;
+
+@Component("securityService")
+public class RestSecurityService {
+  private SecurityService securityService = 
SecurityService.getSecurityService();
+
+  public boolean authorize(String resource, String operation) {
+return authorize(resource, operation, null, null);
+  }
+
+  public boolean authorize(String resource, String operation, String region) {
+return authorize(resource, operation, region, null);
+  }
+
+  public boolean authorize(String resource, String operation, String region, 
String key) {
+try{
+  securityService.authorize(resource, operation, region, key);
+  return true;
+}
+catch (GemFireSecurityException ex){
+  return false;
+}
+  }
+
+  public boolean authorizeKeys(String operation, String region, String[] keys) 
{
+boolean authorized = false;
+for(String key:keys){
+  authorized = authorize("DATA", operation, region, key);
+  if(!authorized)
+return false;
+}
+return true;
+  }
+}



[2/2] incubator-geode git commit: GEODE-1570: improve rest security framework

2016-10-11 Thread jinmeiliao
GEODE-1570: improve rest security framework

 * use annotations for authorization
 * consolidate tests
 * delete unused classes


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/29e49480
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/29e49480
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/29e49480

Branch: refs/heads/develop
Commit: 29e4948037b0f8066953efb7abafb51c77639493
Parents: 280d2d8
Author: Jinmei Liao 
Authored: Mon Oct 10 15:00:33 2016 -0700
Committer: Jinmei Liao 
Committed: Tue Oct 11 14:22:33 2016 -0700

--
 .../internal/web/RestSecurityDUnitTest.java | 409 +-
 .../web/RestSecurityEndpointsDUnitTest.java | 422 ---
 .../security/IntegratedSecurityService.java |  27 +-
 .../internal/security/SecurityService.java  |   7 +-
 .../geode/security/ResourcePermission.java  |   4 +-
 .../web/controllers/AbstractBaseController.java |  32 +-
 .../web/controllers/BaseControllerAdvice.java   |  43 +-
 .../web/controllers/CommonCrudController.java   |  55 +--
 .../controllers/FunctionAccessController.java   |  56 ++-
 .../web/controllers/PdxBasedCrudController.java |  53 +--
 .../web/controllers/QueryAccessController.java  |  73 ++--
 .../web/security/GeodeAuthentication.java   |  37 --
 .../security/GeodeAuthenticationProvider.java   |  21 +-
 .../internal/web/security/GeodeAuthority.java   |  47 ---
 .../web/security/RestSecurityService.java   |  56 +++
 15 files changed, 607 insertions(+), 735 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/29e49480/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
index 7d232ce..59e00c8 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
@@ -23,7 +23,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.MalformedURLException;
-import java.net.URL;
 import java.nio.charset.StandardCharsets;
 
 import org.apache.http.HttpEntity;
@@ -47,7 +46,10 @@ import org.apache.http.impl.client.BasicAuthCache;
 import org.apache.http.impl.client.BasicCredentialsProvider;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
+import org.json.JSONArray;
+import org.json.JSONObject;
 import org.json.JSONTokener;
+import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 import org.apache.geode.internal.AvailablePortHelper;
@@ -63,15 +65,390 @@ public class RestSecurityDUnitTest extends 
AbstractSecureServerDUnitTest {
   public final static String HOSTNAME = "localhost";
   public final static String CONTEXT = "/geode/v1";
 
-  private final String endPoint;
-  private final URL url;
-
   public RestSecurityDUnitTest() throws MalformedURLException {
 int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);
 this.jmxPort = ports[0];
 this.restPort = ports[1];
-endPoint = PROTOCOL + "://" + HOSTNAME + ":" + restPort + CONTEXT;
-url = new URL(endPoint);
+  }
+
+  @Test
+  public void testFunctions() {
+client1.invoke(() -> {
+  String json = "{\"@type\":\"double\",\"@value\":210}";
+
+  HttpResponse response = doGet("/functions", "unknown-user", "1234567");
+  assertEquals(401, getCode(response));
+  response = doGet("/functions", "stranger", "1234567");
+  assertEquals(403, getCode(response));
+  response = doGet("/functions", "dataReader", "1234567");
+  assertTrue(isOK(response));
+
+  response = doPost("/functions/AddFreeItemsToOrder", "unknown-user", 
"1234567", json);
+  assertEquals(401, getCode(response));
+  response = doPost("/functions/AddFreeItemsToOrder", "dataReader", 
"1234567", json);
+  assertEquals(403, getCode(response));
+  response = doPost("/functions/AddFreeItemsToOrder?onRegion=" + 
REGION_NAME, "dataWriter", "1234567", json);
+  // because we're only testing the security of the endpoint, not the 
endpoint functionality, a 500 is acceptable
+  assertEquals(500, getCode(response));
+});
+  }
+
+  @Test
+  public void testQueries() {
+client1.invoke(() -> {
+  HttpResponse response = doGet("/queries", "unknown-user", "1234567");
+  assertEquals(401, getCode(response));
+  response = 

[1/6] incubator-geode git commit: GEODE-1570 - developer REST API should be secured

2016-10-10 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop a0acc3ca6 -> 46b95d4c5


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5ed443d5/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthentication.java
--
diff --git 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthentication.java
 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthentication.java
new file mode 100644
index 000..c4226f6
--- /dev/null
+++ 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthentication.java
@@ -0,0 +1,37 @@
+/*
+ * 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.rest.internal.web.security;
+
+import 
org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.authority.AuthorityUtils;
+
+class GeodeAuthentication extends UsernamePasswordAuthenticationToken {
+  /**
+   * This constructor should only be used by 
AuthenticationManager or AuthenticationProvider
+   * implementations that are satisfied with producing a trusted (i.e. {@link 
#isAuthenticated()} = true)
+   * authentication token.
+   * @param principal
+   * @param credentials
+   */
+  public GeodeAuthentication(final Object principal,
+ final Object credentials) {
+super(principal, credentials, AuthorityUtils.NO_AUTHORITIES);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5ed443d5/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthenticationProvider.java
--
diff --git 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthenticationProvider.java
 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthenticationProvider.java
new file mode 100644
index 000..c482047
--- /dev/null
+++ 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthenticationProvider.java
@@ -0,0 +1,56 @@
+/*
+ * 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.rest.internal.web.security;
+
+import org.apache.shiro.subject.Subject;
+import org.springframework.security.authentication.AuthenticationProvider;
+import org.springframework.security.authentication.BadCredentialsException;
+import 
org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.stereotype.Component;
+
+import org.apache.geode.internal.security.IntegratedSecurityService;
+import org.apache.geode.security.AuthenticationFailedException;
+
+
+@Component
+public class GeodeAuthenticationProvider implements AuthenticationProvider {
+
+  @Override
+  public Authentication authenticate(Authentication authentication) throws 
AuthenticationException {
+String username = authentication.getName();
+String password = authentication.getCredentials().toString();
+
+try {
+  Subject subject = 
IntegratedSecurityService.getSecurityService().login(username, password);
+  if (subject != null) {
+return new GeodeAuthentication(subject.getPrincipal(), 

[4/6] incubator-geode git commit: GEODE-1570: upgrade spring libraries

2016-10-10 Thread jinmeiliao
GEODE-1570: upgrade spring libraries

* upgrade the spring libraries and related libraries
* upgrade version numbers in the NOTICE and LICENSE file
* some test refactor


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/a7b9ac13
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/a7b9ac13
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/a7b9ac13

Branch: refs/heads/develop
Commit: a7b9ac13d542a5e63a633e54d9b1b527703e3511
Parents: 2b0b55e
Author: Jinmei Liao 
Authored: Thu Sep 15 14:17:05 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 10 15:07:08 2016 -0700

--
 geode-assembly/src/main/dist/NOTICE |  10 +-
 .../internal/web/RestInterfaceJUnitTest.java|  42 +++--
 .../internal/web/RestSecurityDUnitTest.java | 173 +--
 .../src/test/resources/expected_jars.txt|   1 +
 geode-core/build.gradle |   3 +
 .../cli/shell/GfshInitFileJUnitTest.java|  18 +-
 .../security/AbstractSecureServerDUnitTest.java |   1 -
 .../security/GemFireAuthentication.java |   2 +-
 .../security/GemFireAuthenticationProvider.java |   1 -
 .../service/MemberGatewayHubService.java|  11 +-
 geode-pulse/src/main/webapp/Login.html  |   6 +-
 geode-pulse/src/main/webapp/META-INF/NOTICE |   6 +-
 .../webapp/WEB-INF/mvc-dispatcher-servlet.xml   |   8 +-
 .../src/main/webapp/WEB-INF/spring-security.xml |  17 +-
 .../geode/tools/pulse/tests/PulseAuthTest.java  |   2 +-
 .../tools/pulse/tests/PulseAutomatedTest.java   |   2 +-
 geode-web-api/build.gradle  |   1 +
 .../geode/rest/internal/web/util/JSONUtils.java | 105 ++-
 .../rest/internal/web/util/JsonWriter.java  |  16 +-
 geode-web-api/src/main/webapp/META-INF/NOTICE   |   6 +-
 .../src/main/webapp/WEB-INF/geode-servlet.xml   |  14 +-
 geode-web/src/main/webapp/META-INF/NOTICE   |   2 +-
 .../main/webapp/WEB-INF/geode-mgmt-servlet.xml  |   6 +-
 gradle/dependency-resolution.gradle |  19 --
 gradle/dependency-versions.properties   |  20 +--
 25 files changed, 162 insertions(+), 330 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a7b9ac13/geode-assembly/src/main/dist/NOTICE
--
diff --git a/geode-assembly/src/main/dist/NOTICE 
b/geode-assembly/src/main/dist/NOTICE
index 1924007..412774d 100644
--- a/geode-assembly/src/main/dist/NOTICE
+++ b/geode-assembly/src/main/dist/NOTICE
@@ -26,7 +26,7 @@ Java ClassMate library was originally written by Tatu 
Saloranta (tatu.saloranta@
   
   * Brian Langel
 
-Jackson Core 2.2.0
+Jackson Core 2.8.2
 
   # Jackson JSON processor
 
@@ -242,7 +242,7 @@ Apache Lucene
   from and not be held liable to the user for any such damages as noted
   above as far as the program is concerned.
 
-Spring Framework 4.2.4.RELEASE
+Spring Framework 4.3.2.RELEASE
 Copyright (c) 2002-2015 Pivotal, Inc.
 
   This product is licensed to you under the Apache License, Version 2.0
@@ -254,7 +254,7 @@ Copyright (c) 2002-2015 Pivotal, Inc.
   these subcomponents is subject to the terms and conditions of the
   subcomponent's license, as noted in the license.txt file.
 
-Spring Hateoas 0.12
+Spring Hateoas 0.21.0
 Copyright (c) [2012-2014] Pivotal Software, Inc.
 
   This product is licensed to you under the Apache License, Version 2.0 (the 
"License").  
@@ -265,12 +265,12 @@ Copyright (c) [2012-2014] Pivotal Software, Inc.
   code for the these subcomponents is subject to the terms and
   conditions of the subcomponent's license, as noted in the LICENSE file.
 
-Spring LDAP Core 1.3.2
+Spring LDAP Core 2.1.0
 
This product includes software developed by the Spring LDAP
Project (http://www.springframework.org/ldap).
 
-Spring Shell 1.1.0
+Spring Shell 1.2.0
 
This product includes software developed by the Spring Framework
Project (http://www.springframework.org).

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a7b9ac13/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestInterfaceJUnitTest.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestInterfaceJUnitTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestInterfaceJUnitTest.java
index 0d93518..4e3269e 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestInterfaceJUnitTest.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestInterfaceJUnitTest.java
@@ -16,15 +16,41 @@
  */
 package org.apache.geode.rest.internal.web;
 
+import static 

[6/6] incubator-geode git commit: GEODE-1972: Move Geode Hibernate module to a feature branch

2016-10-10 Thread jinmeiliao
GEODE-1972: Move Geode Hibernate module to a feature branch


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/46b95d4c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/46b95d4c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/46b95d4c

Branch: refs/heads/develop
Commit: 46b95d4c55d7617b98c1f02341592c756ee4e4e9
Parents: a7b9ac1
Author: Jason Huynh 
Authored: Mon Oct 10 10:37:34 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 10 15:07:09 2016 -0700

--
 extensions/geode-modules-assembly/build.gradle  |  12 +-
 extensions/geode-modules-hibernate/build.gradle |  42 --
 .../geode/modules/hibernate/EnumType.java   |  57 ---
 .../geode/modules/hibernate/GemFireCache.java   | 238 ---
 .../modules/hibernate/GemFireCacheListener.java |  54 ---
 .../modules/hibernate/GemFireCacheProvider.java | 200 -
 .../hibernate/GemFireQueryCacheFactory.java |  39 --
 .../modules/hibernate/GemFireRegionFactory.java | 221 --
 .../modules/hibernate/internal/Access.java  | 257 
 .../ClientServerRegionFactoryDelegate.java  | 201 -
 .../hibernate/internal/CollectionAccess.java| 224 --
 .../hibernate/internal/EntityRegionWriter.java  |  87 
 .../hibernate/internal/EntityVersion.java   |  27 --
 .../hibernate/internal/EntityVersionImpl.java   |  50 ---
 .../hibernate/internal/EntityWrapper.java   |  89 
 .../hibernate/internal/GemFireBaseRegion.java   | 166 
 .../internal/GemFireCollectionRegion.java   |  59 ---
 .../hibernate/internal/GemFireEntityRegion.java | 187 -
 .../internal/GemFireQueryResultsRegion.java | 113 -
 .../modules/hibernate/internal/KeyWrapper.java  |  92 
 .../internal/NonStrictReadWriteAccess.java  |  83 
 .../hibernate/internal/ReadOnlyAccess.java  |  55 ---
 .../hibernate/internal/ReadWriteAccess.java |  36 --
 .../internal/RegionFactoryDelegate.java | 146 ---
 .../hibernate/internal/TransactionalAccess.java |  25 --
 .../java/org/apache/geode/modules/Event.java|  67 ---
 .../geode/modules/HibernateJUnitTest.java   | 416 ---
 .../java/org/apache/geode/modules/Owner.java| 185 -
 .../java/org/apache/geode/modules/Person.java   |  72 
 .../org/apache/geode/modules/SecondVMTest.java  |  95 -
 .../src/test/resources/log4j.properties |  16 -
 .../org/apache/geode/modules/Event.hbm.xml  |  32 --
 .../org/apache/geode/modules/Person.hbm.xml |  36 --
 gradle/sonar.gradle |   6 -
 settings.gradle |   1 -
 35 files changed, 1 insertion(+), 3685 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/46b95d4c/extensions/geode-modules-assembly/build.gradle
--
diff --git a/extensions/geode-modules-assembly/build.gradle 
b/extensions/geode-modules-assembly/build.gradle
index f037aad..5604e12 100644
--- a/extensions/geode-modules-assembly/build.gradle
+++ b/extensions/geode-modules-assembly/build.gradle
@@ -154,15 +154,6 @@ task distTomcat(type: Zip, dependsOn: 
':extensions/geode-modules:assemble') {
   }
 }
 
-task distHibernate(type: Zip, dependsOn: 
':extensions/geode-modules-hibernate:assemble') {
-  archiveName = "Apache_Geode_Modules-${version}-Hibernate.zip"
-
-  into('lib') {
-from getJarArtifact(':extensions/geode-modules')
-from getJarArtifact(':extensions/geode-modules-hibernate')
-  }
-}
-
 task distAppServer(type: Zip, dependsOn: 
':extensions/geode-modules-session:assemble') {
   archiveName = "Apache_Geode_Modules-${version}-AppServer.zip"
 
@@ -204,11 +195,10 @@ task distTcServer30(type: Zip, dependsOn: 
[':extensions/geode-modules:assemble',
 dependencies {
   moduleDistOutputs distTcServer.outputs.files
   moduleDistOutputs distTcServer30.outputs.files
-  moduleDistOutputs distHibernate.outputs.files
   moduleDistOutputs distAppServer.outputs.files
   moduleDistOutputs distTomcat.outputs.files
 }
 
-task dist(type: Task, dependsOn: ['distTcServer', 'distTcServer30', 
'distTomcat', 'distHibernate', 'distAppServer'])
+task dist(type: Task, dependsOn: ['distTcServer', 'distTcServer30', 
'distTomcat', 'distAppServer'])
 
 build.dependsOn dist

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/46b95d4c/extensions/geode-modules-hibernate/build.gradle
--
diff --git a/extensions/geode-modules-hibernate/build.gradle 
b/extensions/geode-modules-hibernate/build.gradle
deleted file mode 100644
index 5169b04..000
--- a/extensions/geode-modules-hibernate/build.gradle
+++ /dev/null
@@ 

[5/6] incubator-geode git commit: GEODE-1972: Move Geode Hibernate module to a feature branch

2016-10-10 Thread jinmeiliao
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/46b95d4c/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/GemFireEntityRegion.java
--
diff --git 
a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/GemFireEntityRegion.java
 
b/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/GemFireEntityRegion.java
deleted file mode 100644
index 0f514a4..000
--- 
a/extensions/geode-modules-hibernate/src/main/java/org/apache/geode/modules/hibernate/internal/GemFireEntityRegion.java
+++ /dev/null
@@ -1,187 +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.modules.hibernate.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.ExecutorService;
-
-import org.hibernate.cache.CacheDataDescription;
-import org.hibernate.cache.CacheException;
-import org.hibernate.cache.EntityRegion;
-import org.hibernate.cache.access.AccessType;
-import org.hibernate.cache.access.EntityRegionAccessStrategy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.geode.cache.Region;
-import org.apache.geode.distributed.DistributedSystem;
-import org.apache.geode.internal.cache.LocalRegion;
-import org.apache.geode.modules.hibernate.GemFireRegionFactory;
-import org.apache.geode.modules.util.ModuleStatistics;
-
-public class GemFireEntityRegion extends GemFireBaseRegion implements 
EntityRegion {
-
-  private final Logger log = LoggerFactory.getLogger(getClass());
-  
-  private final boolean USE_JTA = Boolean.getBoolean("gemfiremodules.useJTA");
-  
-  /**
-   * keys for which interest has been registered already
-   */
-  private ConcurrentMap registeredKeys = new 
ConcurrentHashMap();
-
-  /**
-   * map to store the entries that were pre-fetched when the underlying region 
has no local storage
-   */
-  protected ConcurrentMap preFetchMap = new 
ConcurrentHashMap();
-  
-  public GemFireEntityRegion(Region region,
-  boolean isClient, CacheDataDescription metadata, GemFireRegionFactory 
regionFactory) {
-super(region, isClient, metadata, regionFactory);
-  }
-
-  @Override
-  public boolean isTransactionAware() {
-// there are no colocation guarantees while using hibernate
-// so return false for a PartitionedRegion for now
-if (USE_JTA) {
-  return true;
-}
-return false;
-  }
-
-  @Override
-  public CacheDataDescription getCacheDataDescription() {
-return this.metadata;
-  }
-
-  @Override
-  public EntityRegionAccessStrategy buildAccessStrategy(AccessType accessType)
-  throws CacheException {
-if (AccessType.READ_ONLY.equals(accessType)) {
-  log.info("creating read-only access for region: " + this.getName());
-  return new ReadOnlyAccess(this);
-}
-else if (AccessType.NONSTRICT_READ_WRITE.equals(accessType)) {
-  log.info("creating nonstrict-read-write access for region: "
-  + this.getName());
-  return new NonStrictReadWriteAccess(this);
-}
-else if (AccessType.READ_WRITE.equals(accessType)) {
-   log.info("creating read-write access for region: "
- + this.getName());
-  return new ReadWriteAccess(this);
-}
-else if (AccessType.TRANSACTIONAL.equals(accessType)) {
-   log.info("creating transactional access for region: "
- + this.getName());
-  return new TransactionalAccess(this);
-}
-throw new UnsupportedOperationException("Unknown access type: "
-+ accessType);
-  }
-
-  /**
-   * Should this region should register interest in keys.
-   * @return true for client regions with storage
-   */
-  public boolean isRegisterInterestRequired() {
-return this.isClientRegion && 

[2/6] incubator-geode git commit: GEODE-1570 - developer REST API should be secured

2016-10-10 Thread jinmeiliao
GEODE-1570 - developer REST API should be secured

* Merged with develop after org.apache package rename
* Moved classes to internal.
* this closes #251


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/5ed443d5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/5ed443d5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/5ed443d5

Branch: refs/heads/develop
Commit: 5ed443d5bf8be3943fa76ce457f9592df5eb8317
Parents: a0acc3c
Author: Kevin Duling 
Authored: Wed Sep 21 08:50:46 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 10 15:07:07 2016 -0700

--
 .../internal/web/RestSecurityDUnitTest.java | 247 +--
 .../web/RestSecurityEndpointsDUnitTest.java | 422 +++
 .../src/main/webapp/WEB-INF/spring-security.xml |   2 +-
 geode-web-api/build.gradle  |   6 +-
 .../web/controllers/AbstractBaseController.java |  54 ++-
 .../web/controllers/BaseControllerAdvice.java   |  78 +++-
 .../web/controllers/CommonCrudController.java   |  87 ++--
 .../controllers/FunctionAccessController.java   |  36 +-
 .../web/controllers/PdxBasedCrudController.java |  44 +-
 .../web/controllers/QueryAccessController.java  | 108 ++---
 .../web/security/GeodeAuthentication.java   |  37 ++
 .../security/GeodeAuthenticationProvider.java   |  56 +++
 .../internal/web/security/GeodeAuthority.java   |  47 +++
 .../web/security/RestSecurityConfiguration.java |  76 
 .../src/main/webapp/WEB-INF/geode-servlet.xml   |  11 +-
 geode-web-api/src/main/webapp/WEB-INF/web.xml   |  20 +-
 gradle/dependency-versions.properties   |   4 +-
 17 files changed, 1116 insertions(+), 219 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5ed443d5/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
index df146a6..a9d90ed 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
@@ -22,75 +22,236 @@ import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
 
+import org.apache.geode.internal.AvailablePortHelper;
+import org.apache.geode.security.AbstractSecureServerDUnitTest;
+import org.apache.geode.test.junit.categories.DistributedTest;
+import org.apache.geode.test.junit.categories.SecurityTest;
 import org.apache.http.HttpEntity;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpResponse;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.AuthCache;
 import org.apache.http.client.ClientProtocolException;
-import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.methods.HttpDelete;
 import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpHead;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.auth.BasicScheme;
+import org.apache.http.impl.client.BasicAuthCache;
+import org.apache.http.impl.client.BasicCredentialsProvider;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.junit.Test;
+import org.json.JSONTokener;
 import org.junit.experimental.categories.Category;
 
-import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.security.AbstractSecureServerDUnitTest;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
 
-@Category({ DistributedTest.class, SecurityTest.class})
+@Category({ DistributedTest.class, SecurityTest.class })
 public class RestSecurityDUnitTest extends AbstractSecureServerDUnitTest {
-  private String endPoint = null;
-  public RestSecurityDUnitTest(){
+
+  public final static String PROTOCOL = "http";
+  public final static String HOSTNAME = "localhost";
+  public final static String CONTEXT = "/geode/v1";
+
+  private final String endPoint;

[3/6] incubator-geode git commit: GEODE-1570: make GemFireVersion.properties available in the geode-core test source so that other projects that depends on the geode-core-test can access it.

2016-10-10 Thread jinmeiliao
GEODE-1570: make GemFireVersion.properties available in the geode-core test 
source so that other projects that depends on the geode-core-test can access it.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/2b0b55ea
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/2b0b55ea
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/2b0b55ea

Branch: refs/heads/develop
Commit: 2b0b55ea93f372da1b06848644e27de725c11da9
Parents: 5ed443d
Author: Jinmei Liao 
Authored: Tue Oct 4 15:10:42 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 10 15:07:08 2016 -0700

--
 geode-core/build.gradle | 3 +++
 1 file changed, 3 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/2b0b55ea/geode-core/build.gradle
--
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index b2e5a4e..3cbdfbe 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -131,6 +131,9 @@ sourceSets {
   main {
 output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
   }
+  test {
+output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
+  }
 }
 
 // Creates the version properties file and writes it to the classes dir



incubator-geode git commit: GEODE-1973: add more tests to cover GMSAuthenticator and SimpleSecurityManager

2016-10-10 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 33cdf6886 -> 68aef5b7f


GEODE-1973: add more tests to cover GMSAuthenticator and SimpleSecurityManager

* adding more 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/68aef5b7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/68aef5b7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/68aef5b7

Branch: refs/heads/develop
Commit: 68aef5b7fbdb7ff740d5fbbc66c7848f14b834ff
Parents: 33cdf68
Author: Jinmei Liao 
Authored: Fri Sep 30 13:13:56 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 10 10:24:03 2016 -0700

--
 .../templates/SimpleSecurityManager.java| 71 +++
 .../security/PeerAuthenticatorDUnitTest.java| 93 +++
 ...henticatorWithCachelessLocatorDUnitTest.java | 94 
 .../templates/SimpleSecurityManagerTest.java| 80 +
 .../geode/security/CQClientAuthDunitTest.java   | 88 ++
 5 files changed, 426 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/68aef5b7/geode-core/src/main/java/org/apache/geode/security/templates/SimpleSecurityManager.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/security/templates/SimpleSecurityManager.java
 
b/geode-core/src/main/java/org/apache/geode/security/templates/SimpleSecurityManager.java
new file mode 100644
index 000..d4855fe
--- /dev/null
+++ 
b/geode-core/src/main/java/org/apache/geode/security/templates/SimpleSecurityManager.java
@@ -0,0 +1,71 @@
+/*
+ * 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.templates;
+
+import java.util.Properties;
+
+import org.apache.geode.security.AuthenticationFailedException;
+import org.apache.geode.security.ResourcePermission;
+import org.apache.geode.security.SecurityManager;
+
+/**
+ * This class provides a simple implementation of {@link SecurityManager} for
+ * authentication and authorization solely based on the username and password 
provided.
+ *
+ * It is meant for demo purpose, not for production.
+ *
+ * Authentiation: All users whose password matches the username are 
authenticated.
+ * e.g. username/password = test/test, user/user, admin/admin
+ *
+ * Authorization: users whose username is a substring (case insensitive) of 
the permission
+ * required are authorized.
+ * e.g. username = data: is authorized for all data operations:
+ *data;
+ *data:manage
+ *data:read
+ *data:write
+ *  username = dataWrite: is authorized for data writes on all regions:
+ *data:write
+ *data:write:regionA
+ *  username = cluster: authorized for all cluster operations
+ *  username = cluserRead: authorzed for all cluster read operations
+ */
+public class SimpleSecurityManager implements SecurityManager {
+  @Override
+  public void init(final Properties securityProps) {}
+
+  @Override
+  public Object authenticate(final Properties credentials) throws 
AuthenticationFailedException {
+String username = credentials.getProperty("security-username");
+String password = credentials.getProperty("security-password");
+if(username!=null && username.equals(password)){
+  return username;
+}
+throw new AuthenticationFailedException("invalid username/password");
+  }
+
+  @Override
+  public boolean authorize(final Object principal, final ResourcePermission 
permission) {
+String permissionString = 
permission.toString().replace(":","").toLowerCase();
+String principle = principal.toString().toLowerCase();
+return permissionString.startsWith(principle);
+  }
+
+  @Override
+  public void close() {}
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/68aef5b7/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java

incubator-geode git commit: GEODE-1973: having GMSAuthenticator work on a locator with no cache.

2016-10-07 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 654b06ed2 -> febc634e8


GEODE-1973: having GMSAuthenticator work on a locator with no cache.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/febc634e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/febc634e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/febc634e

Branch: refs/heads/develop
Commit: febc634e80ff902f161b5e3e09cb214199df9566
Parents: 654b06e
Author: Jinmei Liao 
Authored: Fri Oct 7 14:13:38 2016 -0700
Committer: Jinmei Liao 
Committed: Fri Oct 7 15:08:23 2016 -0700

--
 .../internal/membership/gms/auth/GMSAuthenticator.java | 13 +
 1 file changed, 9 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/febc634e/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
index 8e4c15d..3cd9aa0 100755
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
@@ -22,6 +22,8 @@ import static 
org.apache.geode.internal.i18n.LocalizedStrings.*;
 import java.security.Principal;
 import java.util.Properties;
 
+import org.apache.commons.lang.StringUtils;
+
 import org.apache.geode.LogWriter;
 import org.apache.geode.distributed.DistributedMember;
 import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -106,7 +108,11 @@ public class GMSAuthenticator implements Authenticator {
* Method is package protected to be used in testing.
*/
   String authenticate(DistributedMember member, Properties credentials, 
Properties secProps) throws AuthenticationFailedException {
-if (!securityService.isPeerSecurityRequired()) {
+// For older systems, locator might be started without cache, so 
secureService may not be initialized here. We need to check
+// if the passed in secProps has peer authenticator or not
+String authMethod = secProps.getProperty(SECURITY_PEER_AUTHENTICATOR);
+// at this point,
+if (!securityService.isPeerSecurityRequired() && 
StringUtils.isBlank(authMethod)) {
   return null;
 }
 
@@ -141,14 +147,13 @@ public class GMSAuthenticator implements Authenticator {
* Method is package protected to be used in testing.
*/
   Principal invokeAuthenticator(Properties securityProps, DistributedMember 
member, Properties credentials) throws AuthenticationFailedException {
-  String authMethod = 
securityProps.getProperty(SECURITY_PEER_AUTHENTICATOR);
+String authMethod = securityProps.getProperty(SECURITY_PEER_AUTHENTICATOR);
 org.apache.geode.security.Authenticator auth = null;
 try {
-  auth = SecurityService.getObjectOfTypeFromFactoryMethod(authMethod, 
org.apache.geode.security.Authenticator.class);
+  auth = SecurityService.getObjectOfType(authMethod, 
org.apache.geode.security.Authenticator.class);
 
   LogWriter logWriter = this.services.getLogWriter();
   LogWriter securityLogWriter = this.services.getSecurityLogWriter();
-
   auth.init(this.securityProps, logWriter, securityLogWriter); // 
this.securityProps contains security-ldap-basedn but 
security-ldap-baseDomainName is expected
   return auth.authenticate(credentials, member);
 



incubator-geode git commit: GEODE-136: Fix possible NullPointerException in Gfsh's 'list regions' command's GetRegionsFunction.

2016-10-07 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 71f6d677e -> 769d9b3ae


GEODE-136: Fix possible NullPointerException in Gfsh's 'list regions' command's 
GetRegionsFunction.

* this closes #253


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/769d9b3a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/769d9b3a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/769d9b3a

Branch: refs/heads/develop
Commit: 769d9b3ae6435beb967b7c2f648ee01aa909d271
Parents: 71f6d67
Author: Kevin Duling 
Authored: Tue Oct 4 17:08:17 2016 -0700
Committer: Jinmei Liao 
Committed: Fri Oct 7 07:43:49 2016 -0700

--
 .../cli/functions/GetRegionsFunction.java   |  69 +---
 .../functions/GetRegionsFunctionJUnitTest.java  | 111 +++
 2 files changed, 141 insertions(+), 39 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/769d9b3a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunction.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunction.java
index bfb6164..658f012 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunction.java
@@ -20,55 +20,46 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheClosedException;
 import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.Region;
-import org.apache.geode.cache.execute.FunctionAdapter;
+import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.internal.InternalEntity;
 import org.apache.geode.management.internal.cli.domain.RegionInformation;
 
 /**
  * Function that retrieves regions hosted on every member
- *
  */
-public class GetRegionsFunction extends FunctionAdapter implements 
InternalEntity {
+public class GetRegionsFunction implements Function, InternalEntity {
+
+  private static final long serialVersionUID = 1L;
+
+  @Override
+  public String getId() {
+// TODO Auto-generated method stub
+return GetRegionsFunction.class.toString();
+  }
+
+  @Override
+  public void execute(FunctionContext functionContext) {
+try {
+  Cache cache = CacheFactory.getAnyInstance();
+  Set regions = cache.rootRegions(); // should never return 
a null
 
-   /**
-* 
-*/
-   private static final long   serialVersionUID= 1L;
+  if (regions == null || regions.isEmpty()) {
+functionContext.getResultSender().lastResult(null);
+  } else {
+Set regionInformationSet = new HashSet<>();
 
-   @Override
-   public String getId() {
-   // TODO Auto-generated method stub
-   return GetRegionsFunction.class.toString();
-   }
-   
-   @Override
-   public void execute(FunctionContext functionContext) {
-   try {
-   
-   Cache cache = CacheFactory.getAnyInstance();
-   Set  regions = cache.rootRegions();
-   
-   if (regions.isEmpty() || regions == null) {
-   
functionContext.getResultSender().lastResult(null);
-   } else {
-   //Set regionInformationSet = 
RegionInformation.getRegionInformation(regions, true);
-   Set regionInformationSet = 
new HashSet();
-   
-   for (Region region : regions) {
- RegionInformation regInfo = new 
RegionInformation(region, true);
- regionInformationSet.add(regInfo);
-   }
-   
functionContext.getResultSender().lastResult(regionInformationSet.toArray());
-   }
-   } catch (CacheClosedException e) {
-   functionContext.getResultSender().sendException(e);
-   } catch (Exception e) {
-   functionContext.getResultSender().sendException(e);
-   }
-   }
+for (Region region : regions) {
+  RegionInformation regInfo = new RegionInformation(region, true);
+  regionInformationSet.add(regInfo);
+ 

incubator-geode git commit: GEODE-1570: upgrade spring libraries

2016-10-07 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/release/1.0.0-incubating 17cc4724b -> 82ae617c1


GEODE-1570: upgrade spring libraries

* upgrade the spring libraries and related libraries
* upgrade version numbers in the NOTICE and LICENSE file
* some test refactor


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/82ae617c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/82ae617c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/82ae617c

Branch: refs/heads/release/1.0.0-incubating
Commit: 82ae617c179ad27d661aba79e9b8a6b17413e75c
Parents: 17cc472
Author: Jinmei Liao 
Authored: Thu Sep 15 14:17:05 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Oct 6 11:27:59 2016 -0700

--
 geode-assembly/src/main/dist/NOTICE |  10 +-
 .../internal/web/RestInterfaceJUnitTest.java|  42 +++--
 .../internal/web/RestSecurityDUnitTest.java | 173 +--
 .../src/test/resources/expected_jars.txt|   1 +
 geode-core/build.gradle |   3 +
 .../cli/shell/GfshInitFileJUnitTest.java|  18 +-
 .../security/AbstractSecureServerDUnitTest.java |   1 -
 .../security/GemFireAuthentication.java |   2 +-
 .../security/GemFireAuthenticationProvider.java |   1 -
 .../service/MemberGatewayHubService.java|  11 +-
 geode-pulse/src/main/webapp/Login.html  |   6 +-
 geode-pulse/src/main/webapp/META-INF/NOTICE |   6 +-
 .../webapp/WEB-INF/mvc-dispatcher-servlet.xml   |   8 +-
 .../src/main/webapp/WEB-INF/spring-security.xml |  17 +-
 .../geode/tools/pulse/tests/PulseAuthTest.java  |   2 +-
 .../tools/pulse/tests/PulseAutomatedTest.java   |   2 +-
 geode-web-api/build.gradle  |   1 +
 .../geode/rest/internal/web/util/JSONUtils.java | 105 ++-
 .../rest/internal/web/util/JsonWriter.java  |  16 +-
 geode-web-api/src/main/webapp/META-INF/NOTICE   |   6 +-
 .../src/main/webapp/WEB-INF/geode-servlet.xml   |  14 +-
 geode-web/src/main/webapp/META-INF/NOTICE   |   2 +-
 .../main/webapp/WEB-INF/geode-mgmt-servlet.xml  |   6 +-
 gradle/dependency-resolution.gradle |  19 --
 gradle/dependency-versions.properties   |  20 +--
 25 files changed, 162 insertions(+), 330 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/82ae617c/geode-assembly/src/main/dist/NOTICE
--
diff --git a/geode-assembly/src/main/dist/NOTICE 
b/geode-assembly/src/main/dist/NOTICE
index 1924007..412774d 100644
--- a/geode-assembly/src/main/dist/NOTICE
+++ b/geode-assembly/src/main/dist/NOTICE
@@ -26,7 +26,7 @@ Java ClassMate library was originally written by Tatu 
Saloranta (tatu.saloranta@
   
   * Brian Langel
 
-Jackson Core 2.2.0
+Jackson Core 2.8.2
 
   # Jackson JSON processor
 
@@ -242,7 +242,7 @@ Apache Lucene
   from and not be held liable to the user for any such damages as noted
   above as far as the program is concerned.
 
-Spring Framework 4.2.4.RELEASE
+Spring Framework 4.3.2.RELEASE
 Copyright (c) 2002-2015 Pivotal, Inc.
 
   This product is licensed to you under the Apache License, Version 2.0
@@ -254,7 +254,7 @@ Copyright (c) 2002-2015 Pivotal, Inc.
   these subcomponents is subject to the terms and conditions of the
   subcomponent's license, as noted in the license.txt file.
 
-Spring Hateoas 0.12
+Spring Hateoas 0.21.0
 Copyright (c) [2012-2014] Pivotal Software, Inc.
 
   This product is licensed to you under the Apache License, Version 2.0 (the 
"License").  
@@ -265,12 +265,12 @@ Copyright (c) [2012-2014] Pivotal Software, Inc.
   code for the these subcomponents is subject to the terms and
   conditions of the subcomponent's license, as noted in the LICENSE file.
 
-Spring LDAP Core 1.3.2
+Spring LDAP Core 2.1.0
 
This product includes software developed by the Spring LDAP
Project (http://www.springframework.org/ldap).
 
-Spring Shell 1.1.0
+Spring Shell 1.2.0
 
This product includes software developed by the Spring Framework
Project (http://www.springframework.org).

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/82ae617c/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestInterfaceJUnitTest.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestInterfaceJUnitTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestInterfaceJUnitTest.java
index 0d93518..4e3269e 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestInterfaceJUnitTest.java
+++ 

incubator-geode git commit: GEODE-420: fix Pulse test when not using any SSLConfig

2016-10-05 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/release/1.0.0-incubating 864fc08fa -> 17cc4724b


GEODE-420: fix Pulse test when not using any SSLConfig

(cherry picked from commit e04519d)


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/17cc4724
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/17cc4724
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/17cc4724

Branch: refs/heads/release/1.0.0-incubating
Commit: 17cc4724b5e53d6660dcffc17f63a267078cdc63
Parents: 864fc08
Author: Jinmei Liao 
Authored: Mon Oct 3 10:51:05 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Oct 5 12:19:24 2016 -0700

--
 .../java/org/apache/geode/management/internal/JettyHelper.java  | 4 +---
 .../apache/geode/tools/pulse/testbed/driver/PulseUITest.java| 5 ++---
 .../org/apache/geode/tools/pulse/tests/PulseAbstractTest.java   | 5 ++---
 3 files changed, 5 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/17cc4724/geode-core/src/main/java/org/apache/geode/management/internal/JettyHelper.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/JettyHelper.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/JettyHelper.java
index 089dbac..f1906b1 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/JettyHelper.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/JettyHelper.java
@@ -36,8 +36,6 @@ import org.apache.geode.GemFireConfigException;
 import org.apache.geode.internal.admin.SSLConfig;
 import org.apache.geode.internal.lang.StringUtils;
 import org.apache.geode.internal.logging.LogService;
-import org.apache.geode.internal.net.SSLConfigurationFactory;
-import org.apache.geode.internal.security.SecurableCommunicationChannel;
 
 /**
  * @since GemFire 8.1
@@ -197,7 +195,7 @@ public class JettyHelper {
 if (args.length > 1) {
   System.out.printf("Temporary Directory @ ($1%s)%n", USER_DIR);
 
-  final Server jetty = JettyHelper.initJetty(null, 8090, 
SSLConfigurationFactory.getSSLConfigForComponent(SecurableCommunicationChannel.WEB));
+  final Server jetty = JettyHelper.initJetty(null, 8090, new SSLConfig());
 
   for (int index = 0; index < args.length; index += 2) {
 final String webAppContext = args[index];

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/17cc4724/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
--
diff --git 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
index a2365a2..a4062e5 100644
--- 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
+++ 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
@@ -35,8 +35,7 @@ import org.openqa.selenium.firefox.FirefoxDriver;
 import org.openqa.selenium.support.ui.ExpectedCondition;
 import org.openqa.selenium.support.ui.WebDriverWait;
 
-import org.apache.geode.internal.net.SSLConfigurationFactory;
-import org.apache.geode.internal.security.SecurableCommunicationChannel;
+import org.apache.geode.internal.admin.SSLConfig;
 import org.apache.geode.management.internal.JettyHelper;
 import org.apache.geode.test.junit.categories.UITest;
 import org.apache.geode.tools.pulse.testbed.GemFireDistributedSystem.Locator;
@@ -72,7 +71,7 @@ public class PulseUITest {
 path = getPulseWarPath();
 //System.setProperty("pulse.propMockDataUpdaterClass", 
"org.apache.geode.tools.pulse.testbed.PropMockDataUpdater");
 
-jetty = JettyHelper.initJetty(host, port, 
SSLConfigurationFactory.getSSLConfigForComponent(SecurableCommunicationChannel.WEB));
+jetty = JettyHelper.initJetty(host, port, new SSLConfig());
 JettyHelper.addWebApplication(jetty, context, getPulseWarPath());
 jetty.start();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/17cc4724/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/PulseAbstractTest.java
--
diff --git 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/PulseAbstractTest.java
 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/PulseAbstractTest.java
index 5024250..ff70b35 100644
--- 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/PulseAbstractTest.java
+++ 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/PulseAbstractTest.java
@@ -44,8 

[2/3] incubator-geode git commit: GEODE-1570 - developer REST API should be secured

2016-10-04 Thread jinmeiliao
GEODE-1570 - developer REST API should be secured

* Merged with develop after org.apache package rename
* Moved classes to internal.
* this closes #251


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/7b21520b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/7b21520b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/7b21520b

Branch: refs/heads/release/1.0.0-incubating
Commit: 7b21520b746413913b5ad5ed640e5c883eeccaab
Parents: d76eee4
Author: Kevin Duling 
Authored: Wed Sep 21 08:50:46 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 3 13:26:44 2016 -0700

--
 .../internal/web/RestSecurityDUnitTest.java | 247 +--
 .../web/RestSecurityEndpointsDUnitTest.java | 422 +++
 .../src/main/webapp/WEB-INF/spring-security.xml |   2 +-
 geode-web-api/build.gradle  |   6 +-
 .../web/controllers/AbstractBaseController.java |  54 ++-
 .../web/controllers/BaseControllerAdvice.java   |  78 +++-
 .../web/controllers/CommonCrudController.java   |  87 ++--
 .../controllers/FunctionAccessController.java   |  36 +-
 .../web/controllers/PdxBasedCrudController.java |  44 +-
 .../web/controllers/QueryAccessController.java  | 108 ++---
 .../web/security/GeodeAuthentication.java   |  37 ++
 .../security/GeodeAuthenticationProvider.java   |  56 +++
 .../internal/web/security/GeodeAuthority.java   |  47 +++
 .../web/security/RestSecurityConfiguration.java |  76 
 .../src/main/webapp/WEB-INF/geode-servlet.xml   |  11 +-
 geode-web-api/src/main/webapp/WEB-INF/web.xml   |  20 +-
 gradle/dependency-versions.properties   |   4 +-
 17 files changed, 1116 insertions(+), 219 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/7b21520b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
--
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
index df146a6..a9d90ed 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityDUnitTest.java
@@ -22,75 +22,236 @@ import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
 
+import org.apache.geode.internal.AvailablePortHelper;
+import org.apache.geode.security.AbstractSecureServerDUnitTest;
+import org.apache.geode.test.junit.categories.DistributedTest;
+import org.apache.geode.test.junit.categories.SecurityTest;
 import org.apache.http.HttpEntity;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpResponse;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.AuthCache;
 import org.apache.http.client.ClientProtocolException;
-import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.methods.HttpDelete;
 import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpHead;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.auth.BasicScheme;
+import org.apache.http.impl.client.BasicAuthCache;
+import org.apache.http.impl.client.BasicCredentialsProvider;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.junit.Test;
+import org.json.JSONTokener;
 import org.junit.experimental.categories.Category;
 
-import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.security.AbstractSecureServerDUnitTest;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
 
-@Category({ DistributedTest.class, SecurityTest.class})
+@Category({ DistributedTest.class, SecurityTest.class })
 public class RestSecurityDUnitTest extends AbstractSecureServerDUnitTest {
-  private String endPoint = null;
-  public RestSecurityDUnitTest(){
+
+  public final static String PROTOCOL = "http";
+  public final static String HOSTNAME = "localhost";
+  public final static String CONTEXT = "/geode/v1";
+
+  private final 

[1/3] incubator-geode git commit: GEODE-1570 - developer REST API should be secured

2016-10-04 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/release/1.0.0-incubating d76eee424 -> 864fc08fa


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/7b21520b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthentication.java
--
diff --git 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthentication.java
 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthentication.java
new file mode 100644
index 000..c4226f6
--- /dev/null
+++ 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthentication.java
@@ -0,0 +1,37 @@
+/*
+ * 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.rest.internal.web.security;
+
+import 
org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.authority.AuthorityUtils;
+
+class GeodeAuthentication extends UsernamePasswordAuthenticationToken {
+  /**
+   * This constructor should only be used by 
AuthenticationManager or AuthenticationProvider
+   * implementations that are satisfied with producing a trusted (i.e. {@link 
#isAuthenticated()} = true)
+   * authentication token.
+   * @param principal
+   * @param credentials
+   */
+  public GeodeAuthentication(final Object principal,
+ final Object credentials) {
+super(principal, credentials, AuthorityUtils.NO_AUTHORITIES);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/7b21520b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthenticationProvider.java
--
diff --git 
a/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthenticationProvider.java
 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthenticationProvider.java
new file mode 100644
index 000..c482047
--- /dev/null
+++ 
b/geode-web-api/src/main/java/org/apache/geode/rest/internal/web/security/GeodeAuthenticationProvider.java
@@ -0,0 +1,56 @@
+/*
+ * 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.rest.internal.web.security;
+
+import org.apache.shiro.subject.Subject;
+import org.springframework.security.authentication.AuthenticationProvider;
+import org.springframework.security.authentication.BadCredentialsException;
+import 
org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.stereotype.Component;
+
+import org.apache.geode.internal.security.IntegratedSecurityService;
+import org.apache.geode.security.AuthenticationFailedException;
+
+
+@Component
+public class GeodeAuthenticationProvider implements AuthenticationProvider {
+
+  @Override
+  public Authentication authenticate(Authentication authentication) throws 
AuthenticationException {
+String username = authentication.getName();
+String password = authentication.getCredentials().toString();
+
+try {
+  Subject subject = 
IntegratedSecurityService.getSecurityService().login(username, password);
+  if (subject != null) {
+return new 

[3/3] incubator-geode git commit: GEODE-1570: make GemFireVersion.properties available in the geode-core test source so that other projects that depends on the geode-core-test can access it.

2016-10-04 Thread jinmeiliao
GEODE-1570: make GemFireVersion.properties available in the geode-core test 
source so that other projects that depends on the geode-core-test can access it.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/864fc08f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/864fc08f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/864fc08f

Branch: refs/heads/release/1.0.0-incubating
Commit: 864fc08fa6ad44c054fb8e9d27fd90dd777ce598
Parents: 7b21520
Author: Jinmei Liao 
Authored: Tue Oct 4 15:10:42 2016 -0700
Committer: Jinmei Liao 
Committed: Tue Oct 4 15:10:42 2016 -0700

--
 geode-core/build.gradle | 3 +++
 1 file changed, 3 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/864fc08f/geode-core/build.gradle
--
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index b2e5a4e..3cbdfbe 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -131,6 +131,9 @@ sourceSets {
   main {
 output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
   }
+  test {
+output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
+  }
 }
 
 // Creates the version properties file and writes it to the classes dir



incubator-geode git commit: GEODE-420: fix Pulse test when not using any SSLConfig

2016-10-03 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 56a35e2b6 -> e04519dc3


GEODE-420: fix Pulse test when not using any SSLConfig


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/e04519dc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/e04519dc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/e04519dc

Branch: refs/heads/develop
Commit: e04519dc3eced1254f58eaebee9c241ee335dbab
Parents: 56a35e2
Author: Jinmei Liao 
Authored: Mon Oct 3 10:51:05 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Oct 3 16:16:14 2016 -0700

--
 .../java/org/apache/geode/management/internal/JettyHelper.java  | 4 +---
 .../apache/geode/tools/pulse/testbed/driver/PulseUITest.java| 5 ++---
 .../org/apache/geode/tools/pulse/tests/PulseAbstractTest.java   | 5 ++---
 3 files changed, 5 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e04519dc/geode-core/src/main/java/org/apache/geode/management/internal/JettyHelper.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/JettyHelper.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/JettyHelper.java
index 089dbac..f1906b1 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/JettyHelper.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/JettyHelper.java
@@ -36,8 +36,6 @@ import org.apache.geode.GemFireConfigException;
 import org.apache.geode.internal.admin.SSLConfig;
 import org.apache.geode.internal.lang.StringUtils;
 import org.apache.geode.internal.logging.LogService;
-import org.apache.geode.internal.net.SSLConfigurationFactory;
-import org.apache.geode.internal.security.SecurableCommunicationChannel;
 
 /**
  * @since GemFire 8.1
@@ -197,7 +195,7 @@ public class JettyHelper {
 if (args.length > 1) {
   System.out.printf("Temporary Directory @ ($1%s)%n", USER_DIR);
 
-  final Server jetty = JettyHelper.initJetty(null, 8090, 
SSLConfigurationFactory.getSSLConfigForComponent(SecurableCommunicationChannel.WEB));
+  final Server jetty = JettyHelper.initJetty(null, 8090, new SSLConfig());
 
   for (int index = 0; index < args.length; index += 2) {
 final String webAppContext = args[index];

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e04519dc/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
--
diff --git 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
index a2365a2..a4062e5 100644
--- 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
+++ 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/driver/PulseUITest.java
@@ -35,8 +35,7 @@ import org.openqa.selenium.firefox.FirefoxDriver;
 import org.openqa.selenium.support.ui.ExpectedCondition;
 import org.openqa.selenium.support.ui.WebDriverWait;
 
-import org.apache.geode.internal.net.SSLConfigurationFactory;
-import org.apache.geode.internal.security.SecurableCommunicationChannel;
+import org.apache.geode.internal.admin.SSLConfig;
 import org.apache.geode.management.internal.JettyHelper;
 import org.apache.geode.test.junit.categories.UITest;
 import org.apache.geode.tools.pulse.testbed.GemFireDistributedSystem.Locator;
@@ -72,7 +71,7 @@ public class PulseUITest {
 path = getPulseWarPath();
 //System.setProperty("pulse.propMockDataUpdaterClass", 
"org.apache.geode.tools.pulse.testbed.PropMockDataUpdater");
 
-jetty = JettyHelper.initJetty(host, port, 
SSLConfigurationFactory.getSSLConfigForComponent(SecurableCommunicationChannel.WEB));
+jetty = JettyHelper.initJetty(host, port, new SSLConfig());
 JettyHelper.addWebApplication(jetty, context, getPulseWarPath());
 jetty.start();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e04519dc/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/PulseAbstractTest.java
--
diff --git 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/PulseAbstractTest.java
 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/PulseAbstractTest.java
index 5024250..ff70b35 100644
--- 
a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/PulseAbstractTest.java
+++ 
b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/PulseAbstractTest.java
@@ -44,8 +44,7 @@ import org.openqa.selenium.support.ui.ExpectedCondition;
 

incubator-geode git commit: GEODE-1548: Specifying --J=-Dgemfire.jmx-manager-hostname-for-clients now automatically sets -Djava.rmi.server.hostname

2016-09-30 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 0a6e1a533 -> db4ad02f0


GEODE-1548: Specifying --J=-Dgemfire.jmx-manager-hostname-for-clients now 
automatically sets -Djava.rmi.server.hostname

 * This closes #248


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/db4ad02f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/db4ad02f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/db4ad02f

Branch: refs/heads/develop
Commit: db4ad02f078bde786e8a83d8e281419fd5141916
Parents: 0a6e1a5
Author: Jared Stewart 
Authored: Thu Sep 29 10:43:30 2016 -0700
Committer: Jinmei Liao 
Committed: Fri Sep 30 13:16:09 2016 -0700

--
 .../management/internal/ManagementAgent.java|  7 ++-
 .../security/JavaRmiServerNameTest.java | 55 
 2 files changed, 61 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/db4ad02f/geode-core/src/main/java/org/apache/geode/management/internal/ManagementAgent.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/ManagementAgent.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/ManagementAgent.java
index f1daa78..3af508e 100755
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/ManagementAgent.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/ManagementAgent.java
@@ -348,7 +348,7 @@ public class ManagementAgent {
 final int port = this.config.getJmxManagerPort();
 final String hostname;
 final InetAddress bindAddr;
-if (this.config.getJmxManagerBindAddress().equals("")) {
+if (StringUtils.isBlank(this.config.getJmxManagerBindAddress())) {
   hostname = SocketCreator.getLocalHost().getHostName();
   bindAddr = null;
 } else {
@@ -356,6 +356,11 @@ public class ManagementAgent {
   bindAddr = InetAddress.getByName(hostname);
 }
 
+String jmxManagerHostnameForClients = 
this.config.getJmxManagerHostnameForClients();
+if (!StringUtils.isBlank(jmxManagerHostnameForClients)) {
+  System.setProperty("java.rmi.server.hostname", 
jmxManagerHostnameForClients);
+}
+
 final SocketCreator socketCreator = 
SocketCreatorFactory.getSocketCreatorForComponent(SecurableCommunicationChannel.JMX);
 
 final boolean ssl = socketCreator.useSSL();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/db4ad02f/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
--
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
new file mode 100644
index 000..c544e6f
--- /dev/null
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
@@ -0,0 +1,55 @@
+/*
+ * 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.management.internal.security;
+
+import static org.apache.geode.distributed.ConfigurationProperties.*;
+import static org.junit.Assert.*;
+
+import java.util.Properties;
+
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import org.apache.geode.cache.CacheFactory;
+import org.apache.geode.internal.AvailablePort;
+import org.apache.geode.test.junit.categories.IntegrationTest;
+
+@Category(IntegrationTest.class)
+public class JavaRmiServerNameTest {
+
+  private static final String JMX_HOST = "myHostname";
+
+  private static int jmxManagerPort = 
AvailablePort.getRandomAvailablePort(AvailablePort.SOCKET);
+
+  //https://issues.apache.org/jira/browse/GEODE-1548
+  @Test
+  public void testThatJavaRmiServerNameGetsSet() {
+Properties properties = new Properties();
+

incubator-geode git commit: GEODE-1769: add the ignored exception to the AbstractSecureServerDUnitTest

2016-09-27 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop ddf4f3dbc -> 1890e60e2


GEODE-1769: add the ignored exception to the AbstractSecureServerDUnitTest


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/1890e60e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/1890e60e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/1890e60e

Branch: refs/heads/develop
Commit: 1890e60e231767d6e94712483e29cd86a68ce51b
Parents: ddf4f3d
Author: Jinmei Liao 
Authored: Tue Sep 27 11:00:14 2016 -0700
Committer: Jinmei Liao 
Committed: Tue Sep 27 14:04:42 2016 -0700

--
 .../apache/geode/security/AbstractSecureServerDUnitTest.java  | 7 +--
 .../IntegratedClientRegisterInterestAuthDistributedTest.java  | 1 -
 2 files changed, 5 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1890e60e/geode-core/src/test/java/org/apache/geode/security/AbstractSecureServerDUnitTest.java
--
diff --git 
a/geode-core/src/test/java/org/apache/geode/security/AbstractSecureServerDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/security/AbstractSecureServerDUnitTest.java
index 23b851a..435b426 100644
--- 
a/geode-core/src/test/java/org/apache/geode/security/AbstractSecureServerDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/security/AbstractSecureServerDUnitTest.java
@@ -24,7 +24,6 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Properties;
 
-import org.apache.geode.security.templates.SampleSecurityManager;
 import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
 import org.junit.Before;
 
@@ -36,9 +35,11 @@ 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.server.CacheServer;
-import org.apache.geode.distributed.*;
+import org.apache.geode.distributed.ConfigurationProperties;
+import org.apache.geode.security.templates.SampleSecurityManager;
 import org.apache.geode.security.templates.UserPasswordAuthInit;
 import org.apache.geode.test.dunit.Host;
+import org.apache.geode.test.dunit.IgnoredException;
 import org.apache.geode.test.dunit.Invoke;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase;
@@ -69,6 +70,8 @@ public class AbstractSecureServerDUnitTest extends 
JUnit4CacheTestCase {
 
   @Before
   public void before() throws Exception {
+IgnoredException.addIgnoredException("No longer connected to localhost");
+
 final Host host = Host.getHost(0);
 this.client1 = host.getVM(1);
 this.client2 = host.getVM(2);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1890e60e/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
index f897b5e..d066e9d 100644
--- 
a/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRegisterInterestAuthDistributedTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/security/IntegratedClientRegisterInterestAuthDistributedTest.java
@@ -32,7 +32,6 @@ 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



incubator-geode git commit: GEODE-1909: add authorization in GMSAuthenticator

2016-09-22 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop cf3fea30f -> d639eefd3


GEODE-1909: add authorization in GMSAuthenticator


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/d639eefd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/d639eefd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/d639eefd

Branch: refs/heads/develop
Commit: d639eefd3d42374da987d89f5dfc2d4f83d330eb
Parents: cf3fea3
Author: Jinmei Liao 
Authored: Mon Sep 19 13:53:04 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Sep 22 07:34:36 2016 -0700

--
 .../membership/gms/GMSMemberFactory.java|  22 ++--
 .../membership/gms/auth/GMSAuthenticator.java   |   8 +-
 .../membership/gms/membership/GMSJoinLeave.java |  51 ++---
 .../geode/internal/i18n/LocalizedStrings.java   |   4 +-
 .../GMSAuthenticatorWithAuthenticatorTest.java  |  42 +++
 ...GMSAuthenticatorWithSecurityManagerTest.java |  14 +--
 ...tegratedSecurityPeerAuthDistributedTest.java |  10 +-
 .../security/P2PAuthenticationDUnitTest.java|  40 +++
 .../security/StartServerAuthorizationTest.java  | 113 +++
 .../internal/security/cacheServer.json  |   8 ++
 .../org/apache/geode/security/peerAuth.json |  13 +++
 11 files changed, 241 insertions(+), 84 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/d639eefd/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberFactory.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberFactory.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberFactory.java
index 08178e9..970d8cc 100755
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberFactory.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberFactory.java
@@ -16,25 +16,28 @@
  */
 package org.apache.geode.distributed.internal.membership.gms;
 
+import java.io.File;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
 import org.apache.geode.GemFireConfigException;
 import org.apache.geode.SystemConnectException;
 import org.apache.geode.distributed.internal.DMStats;
 import org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.distributed.internal.DistributionException;
 import org.apache.geode.distributed.internal.LocatorStats;
-import org.apache.geode.distributed.internal.membership.*;
+import 
org.apache.geode.distributed.internal.membership.DistributedMembershipListener;
+import org.apache.geode.distributed.internal.membership.MemberAttributes;
+import org.apache.geode.distributed.internal.membership.MemberServices;
+import org.apache.geode.distributed.internal.membership.MembershipManager;
+import org.apache.geode.distributed.internal.membership.NetMember;
 import org.apache.geode.distributed.internal.membership.gms.locator.GMSLocator;
-import org.apache.geode.internal.net.SocketCreator;
 import org.apache.geode.internal.Version;
 import org.apache.geode.internal.admin.remote.RemoteTransportConfig;
 import org.apache.geode.internal.i18n.LocalizedStrings;
+import org.apache.geode.internal.net.SocketCreator;
 import org.apache.geode.internal.tcp.ConnectionException;
-import org.apache.geode.security.AuthenticationFailedException;
-import org.apache.geode.security.AuthenticationRequiredException;
-
-import java.io.File;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
+import org.apache.geode.security.GemFireSecurityException;
 
 /**
  * Create a new Member based on the given inputs.
@@ -105,8 +108,7 @@ public class GMSMemberFactory implements MemberServices {
 }
 catch (GemFireConfigException
 | SystemConnectException
-| AuthenticationFailedException
-| AuthenticationRequiredException e) {
+| GemFireSecurityException e) {
   throw e;
 }
 catch (RuntimeException e) {

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/d639eefd/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
index 3f030c9..8e4c15d 100755
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
+++ 

incubator-geode git commit: Marked test guarenteed to take at least 1 minute as an integration test

2016-09-20 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 16a19e9d3 -> 4562e466d


Marked test guarenteed to take at least 1 minute as an integration test

* This closes #243


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/4562e466
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/4562e466
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/4562e466

Branch: refs/heads/develop
Commit: 4562e466db62209d137ac2dc6c738c30851bd559
Parents: 16a19e9
Author: Jared Stewart 
Authored: Tue Sep 20 16:10:39 2016 -0700
Committer: Jinmei Liao 
Committed: Tue Sep 20 17:10:18 2016 -0700

--
 .../apache/geode/modules/session/Tomcat7SessionsJUnitTest.java   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/4562e466/extensions/geode-modules-tomcat7/src/test/java/org/apache/geode/modules/session/Tomcat7SessionsJUnitTest.java
--
diff --git 
a/extensions/geode-modules-tomcat7/src/test/java/org/apache/geode/modules/session/Tomcat7SessionsJUnitTest.java
 
b/extensions/geode-modules-tomcat7/src/test/java/org/apache/geode/modules/session/Tomcat7SessionsJUnitTest.java
index 8f20fd4..a6e6a9e 100644
--- 
a/extensions/geode-modules-tomcat7/src/test/java/org/apache/geode/modules/session/Tomcat7SessionsJUnitTest.java
+++ 
b/extensions/geode-modules-tomcat7/src/test/java/org/apache/geode/modules/session/Tomcat7SessionsJUnitTest.java
@@ -19,7 +19,7 @@ package org.apache.geode.modules.session;
 import static org.junit.Assert.assertEquals;
 
 import org.apache.geode.modules.session.catalina.Tomcat7DeltaSessionManager;
-import org.apache.geode.test.junit.categories.UnitTest;
+import org.apache.geode.test.junit.categories.IntegrationTest;
 
 import com.meterware.httpunit.GetMethodWebRequest;
 import com.meterware.httpunit.WebConversation;
@@ -29,7 +29,7 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-@Category(UnitTest.class)
+@Category(IntegrationTest.class)
 public class Tomcat7SessionsJUnitTest extends TestSessionsBase {
 
   // Set up the session manager we need



[1/2] incubator-geode git commit: GEODE-1648: commits related to security-enabled-components.

2016-09-20 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/GEODE-1648 [created] f77f46d40


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f77f46d4/geode-core/src/test/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
--
diff --git 
a/geode-core/src/test/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
 
b/geode-core/src/test/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
index 6d5c84c..b3bab0f 100644
--- 
a/geode-core/src/test/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
+++ 
b/geode-core/src/test/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
@@ -116,6 +116,7 @@ 
org/apache/geode/internal/process/ClusterConfigurationNotAvailableException
 org/apache/geode/internal/security/GeodeSecurityUtil
 org/apache/geode/internal/security/IntegratedSecurityService
 org/apache/geode/internal/security/IntegratedSecurityService$SerializationProxy
+org/apache/geode/internal/security/SecurableComponent
 org/apache/geode/internal/security/SecurityService
 org/apache/geode/internal/statistics/platform/LinuxProcFsStatistics$CPU
 com/gemstone/org/apache/logging/log4j/core/config/xml/GemFireXmlConfiguration



[2/2] incubator-geode git commit: GEODE-1648: commits related to security-enabled-components.

2016-09-20 Thread jinmeiliao
GEODE-1648: commits related to security-enabled-components.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/f77f46d4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/f77f46d4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/f77f46d4

Branch: refs/heads/GEODE-1648
Commit: f77f46d40ff512892e1fba04792429745132e030
Parents: efd0117
Author: Jinmei Liao 
Authored: Tue Sep 20 10:40:31 2016 -0700
Committer: Jinmei Liao 
Committed: Tue Sep 20 10:40:31 2016 -0700

--
 .../client/internal/ConnectionFactoryImpl.java  |  11 +-
 .../distributed/ConfigurationProperties.java|  16 ++
 .../internal/AbstractDistributionConfig.java|  26 +++
 .../internal/DistributionConfig.java|  29 
 .../internal/DistributionConfigImpl.java|  20 +++
 .../membership/gms/auth/GMSAuthenticator.java   |   2 +-
 .../membership/gms/fd/GMSHealthMonitor.java |   1 +
 .../internal/tcpserver/TcpClient.java   |   1 +
 .../internal/tcpserver/TcpServer.java   |   1 +
 .../apache/geode/internal/admin/SSLConfig.java  |   1 +
 .../cache/tier/sockets/AcceptorImpl.java|   4 +-
 .../geode/internal/net/SocketCreator.java   |   1 +
 .../security/IntegratedSecurityService.java | 145 +++--
 .../internal/security/SecurableComponent.java   |  55 +++
 .../internal/security/SecurityService.java  |  73 ++---
 .../apache/geode/internal/tcp/TCPConduit.java   |   1 +
 .../geode/management/GemFireProperties.java |   1 +
 .../management/internal/ManagementAgent.java|  13 +-
 .../geode/security/SecurableComponents.java |  62 +++
 .../CacheServerSSLConnectionDUnitTest.java  |   7 +-
 .../LocatorLauncherRemoteIntegrationTest.java   |  29 ++--
 .../ServerLauncherRemoteIntegrationTest.java|  34 ++--
 .../AbstractDistributionConfigTest.java |  78 +
 .../internal/DistributionConfigJUnitTest.java   |  89 +-
 .../security/IntegratedSecurityServiceTest.java | 163 +--
 .../security/SecurityConfigIntegrationTest.java |  57 +++
 .../ConnectToLocatorSSLDUnitTest.java   |   1 +
 .../geode/management/JMXMBeanDUnitTest.java |   1 +
 ...edSecurityCacheLifecycleDistributedTest.java |  14 +-
 .../security/P2PAuthenticationDUnitTest.java|  32 ++--
 .../geode/codeAnalysis/excludedClasses.txt  |   1 +
 31 files changed, 800 insertions(+), 169 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f77f46d4/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionFactoryImpl.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionFactoryImpl.java
 
b/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionFactoryImpl.java
index 92b3dae..b6460eb 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionFactoryImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionFactoryImpl.java
@@ -16,10 +16,6 @@
  */
 package org.apache.geode.cache.client.internal;
 
-import java.util.HashSet;
-import java.util.Set;
-import java.util.concurrent.ScheduledExecutorService;
-
 import org.apache.geode.CancelCriterion;
 import org.apache.geode.CancelException;
 import org.apache.geode.cache.GatewayConfigurationException;
@@ -28,6 +24,7 @@ import 
org.apache.geode.cache.client.internal.ServerBlackList.FailureTracker;
 import org.apache.geode.cache.wan.GatewaySender;
 import org.apache.geode.distributed.internal.InternalDistributedSystem;
 import org.apache.geode.distributed.internal.ServerLocation;
+import org.apache.geode.internal.net.SocketCreator;
 import org.apache.geode.internal.cache.tier.Acceptor;
 import org.apache.geode.internal.cache.tier.sockets.CacheClientUpdater;
 import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
@@ -35,12 +32,16 @@ import 
org.apache.geode.internal.cache.tier.sockets.HandShake;
 import org.apache.geode.internal.i18n.LocalizedStrings;
 import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.internal.logging.log4j.LocalizedMessage;
-import org.apache.geode.internal.net.SocketCreator;
 import org.apache.geode.internal.net.SocketCreatorFactory;
 import org.apache.geode.internal.security.SecurableCommunicationChannel;
+import org.apache.geode.internal.security.SecurableComponent;
 import org.apache.geode.security.GemFireSecurityException;
 import org.apache.logging.log4j.Logger;
 
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.ScheduledExecutorService;
+
 /**
  * Creates connections, using a connection source to 

incubator-geode git commit: GEODE-1899: This closes #240

2016-09-15 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 1e0b12c52 -> fb2a7e355


GEODE-1899: This closes #240


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/fb2a7e35
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/fb2a7e35
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/fb2a7e35

Branch: refs/heads/develop
Commit: fb2a7e355d9cd11b5da124c346c98d6f4a9313cf
Parents: 1e0b12c
Author: Jinmei Liao 
Authored: Thu Sep 15 15:21:41 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Sep 15 15:21:41 2016 -0700

--
 build.gradle | 1 +
 1 file changed, 1 insertion(+)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb2a7e35/build.gradle
--
diff --git a/build.gradle b/build.gradle
index 4de5abb..f7ce6bc 100755
--- a/build.gradle
+++ b/build.gradle
@@ -85,3 +85,4 @@ subprojects {
   // Make sure clean task for rootProject runs last
   clean.finalizedBy rootProject.cleanAll
 }
+



incubator-geode git commit: GEODE-1899: Renamed the custom 'clean' task to work with Gradle 3.0+

2016-09-15 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 67ac4de20 -> 1e0b12c52


GEODE-1899: Renamed the custom 'clean' task to work with Gradle 3.0+


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/1e0b12c5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/1e0b12c5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/1e0b12c5

Branch: refs/heads/develop
Commit: 1e0b12c5269ec107b7bd5461d3bd1e8876007a53
Parents: 67ac4de
Author: Jared Stewart 
Authored: Thu Sep 15 13:24:34 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Sep 15 15:19:51 2016 -0700

--
 build.gradle | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1e0b12c5/build.gradle
--
diff --git a/build.gradle b/build.gradle
index b2c90a7..4de5abb 100755
--- a/build.gradle
+++ b/build.gradle
@@ -59,7 +59,7 @@ allprojects {
   }
 }
 
-task clean(type: Delete) {
+task cleanAll(type: Delete) {
   delete rootProject.buildDir
   if (!buildRoot.isEmpty()) {
 delete buildRoot
@@ -83,5 +83,5 @@ apply from: "${scriptDir}/rat.gradle"
 
 subprojects {
   // Make sure clean task for rootProject runs last
-  clean.finalizedBy rootProject.clean
+  clean.finalizedBy rootProject.cleanAll
 }



incubator-geode git commit: GEODE-1648: revert commits related to security-enabled-components.

2016-09-15 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 65f35581b -> 45ecd4cb1


GEODE-1648: revert commits related to security-enabled-components.

* revert this if we want to pull this back in.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/45ecd4cb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/45ecd4cb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/45ecd4cb

Branch: refs/heads/develop
Commit: 45ecd4cb1f52bb151d7bd003ccb28308bf40b289
Parents: 65f3558
Author: Jinmei Liao 
Authored: Thu Sep 15 13:39:27 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Sep 15 15:00:41 2016 -0700

--
 .../client/internal/ConnectionFactoryImpl.java  |  11 +-
 .../distributed/ConfigurationProperties.java|  16 --
 .../internal/AbstractDistributionConfig.java|  26 ---
 .../internal/DistributionConfig.java|  29 
 .../internal/DistributionConfigImpl.java|  20 ---
 .../membership/gms/auth/GMSAuthenticator.java   |   2 +-
 .../membership/gms/fd/GMSHealthMonitor.java |   1 -
 .../internal/tcpserver/TcpClient.java   |   1 -
 .../internal/tcpserver/TcpServer.java   |   1 -
 .../apache/geode/internal/admin/SSLConfig.java  |   1 -
 .../cache/tier/sockets/AcceptorImpl.java|   4 +-
 .../geode/internal/net/SocketCreator.java   |   1 -
 .../security/IntegratedSecurityService.java | 145 ++---
 .../internal/security/SecurableComponent.java   |  55 ---
 .../internal/security/SecurityService.java  |  73 +++--
 .../apache/geode/internal/tcp/TCPConduit.java   |   1 -
 .../geode/management/GemFireProperties.java |   1 -
 .../management/internal/ManagementAgent.java|  13 +-
 .../geode/security/SecurableComponents.java |  62 ---
 .../CacheServerSSLConnectionDUnitTest.java  |   7 +-
 .../LocatorLauncherRemoteIntegrationTest.java   |  29 ++--
 .../ServerLauncherRemoteIntegrationTest.java|  34 ++--
 .../AbstractDistributionConfigTest.java |  78 -
 .../internal/DistributionConfigJUnitTest.java   |  89 +-
 .../security/IntegratedSecurityServiceTest.java | 163 ++-
 .../security/SecurityConfigIntegrationTest.java |  57 ---
 .../ConnectToLocatorSSLDUnitTest.java   |   1 -
 .../geode/management/JMXMBeanDUnitTest.java |   1 -
 ...edSecurityCacheLifecycleDistributedTest.java |  14 +-
 .../geode/codeAnalysis/excludedClasses.txt  |   1 -
 30 files changed, 153 insertions(+), 784 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/45ecd4cb/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionFactoryImpl.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionFactoryImpl.java
 
b/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionFactoryImpl.java
index b6460eb..92b3dae 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionFactoryImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionFactoryImpl.java
@@ -16,6 +16,10 @@
  */
 package org.apache.geode.cache.client.internal;
 
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.ScheduledExecutorService;
+
 import org.apache.geode.CancelCriterion;
 import org.apache.geode.CancelException;
 import org.apache.geode.cache.GatewayConfigurationException;
@@ -24,7 +28,6 @@ import 
org.apache.geode.cache.client.internal.ServerBlackList.FailureTracker;
 import org.apache.geode.cache.wan.GatewaySender;
 import org.apache.geode.distributed.internal.InternalDistributedSystem;
 import org.apache.geode.distributed.internal.ServerLocation;
-import org.apache.geode.internal.net.SocketCreator;
 import org.apache.geode.internal.cache.tier.Acceptor;
 import org.apache.geode.internal.cache.tier.sockets.CacheClientUpdater;
 import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
@@ -32,16 +35,12 @@ import 
org.apache.geode.internal.cache.tier.sockets.HandShake;
 import org.apache.geode.internal.i18n.LocalizedStrings;
 import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.internal.logging.log4j.LocalizedMessage;
+import org.apache.geode.internal.net.SocketCreator;
 import org.apache.geode.internal.net.SocketCreatorFactory;
 import org.apache.geode.internal.security.SecurableCommunicationChannel;
-import org.apache.geode.internal.security.SecurableComponent;
 import org.apache.geode.security.GemFireSecurityException;
 import org.apache.logging.log4j.Logger;
 
-import java.util.HashSet;
-import java.util.Set;
-import 

incubator-geode git commit: GEODE-1883: making AuthInit optional when starting a server/client

2016-09-15 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 9b710ab0a -> 65f35581b


GEODE-1883: making AuthInit optional when starting a server/client


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/65f35581
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/65f35581
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/65f35581

Branch: refs/heads/develop
Commit: 65f35581b9f7dded29ad37d06f5e036d6a9f0aa1
Parents: 9b710ab
Author: Jinmei Liao 
Authored: Thu Sep 15 13:57:09 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Sep 15 14:53:09 2016 -0700

--
 .../distributed/ConfigurationProperties.java|  1 -
 .../membership/gms/auth/GMSAuthenticator.java   | 28 ++--
 .../cache/tier/sockets/CacheClientProxy.java| 12 -
 .../internal/cache/tier/sockets/HandShake.java  | 26 ++
 .../internal/security/SecurityService.java  | 14 --
 .../apache/geode/security/AuthInitialize.java   | 16 +--
 .../PDXGfshPostProcessorOnRemoteServerTest.java | 11 +++-
 7 files changed, 52 insertions(+), 56 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65f35581/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java
index 8a4446c..d2dd371 100644
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java
@@ -18,7 +18,6 @@
 package org.apache.geode.distributed;
 
 import org.apache.geode.redis.GeodeRedisServer;
-import org.apache.geode.security.SecurableComponents;
 
 /**
  * This interface defines all the configuration properties that can be used.

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65f35581/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
--
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
index 68ec0c0..a448d8c 100755
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
@@ -28,13 +28,12 @@ import 
org.apache.geode.distributed.internal.membership.InternalDistributedMembe
 import org.apache.geode.distributed.internal.membership.NetView;
 import org.apache.geode.distributed.internal.membership.gms.Services;
 import 
org.apache.geode.distributed.internal.membership.gms.interfaces.Authenticator;
+import org.apache.geode.internal.cache.tier.sockets.HandShake;
 import org.apache.geode.internal.i18n.LocalizedStrings;
 import org.apache.geode.internal.logging.InternalLogWriter;
 import org.apache.geode.internal.security.IntegratedSecurityService;
 import org.apache.geode.internal.security.SecurityService;
-import org.apache.geode.security.AuthInitialize;
 import org.apache.geode.security.AuthenticationFailedException;
-import org.apache.geode.security.AuthenticationRequiredException;
 import org.apache.geode.security.GemFireSecurityException;
 
 public class GMSAuthenticator implements Authenticator {
@@ -185,31 +184,8 @@ public class GMSAuthenticator implements Authenticator {
* For testing only.
*/
   Properties getCredentials(DistributedMember member, Properties secProps) {
-Properties credentials = null;
 String authMethod = secProps.getProperty(SECURITY_PEER_AUTH_INIT);
-
-try {
-  if (authMethod != null && authMethod.length() > 0) {
-AuthInitialize auth = SecurityService.getObjectOfType(authMethod, 
AuthInitialize.class);
-assert auth != null;
-try {
-  LogWriter logWriter = services.getLogWriter();
-  LogWriter securityLogWriter = services.getSecurityLogWriter();
-  auth.init(logWriter, securityLogWriter);
-  credentials = auth.getCredentials(secProps, member, true);
-} finally {
-  auth.close();
-}
-  }
-
-} catch (GemFireSecurityException gse) {
-  throw gse;
-
-} catch (Exception ex) {
-  throw new 
AuthenticationRequiredException(HandShake_FAILED_TO_ACQUIRE_AUTHINITIALIZE_METHOD_0.toLocalizedString(authMethod),
 ex);
-}
-
-

[2/2] incubator-geode git commit: GEODE-17: consolidate GeodeSecurityUtil and IntegratedSecurityService

2016-09-13 Thread jinmeiliao
GEODE-17: consolidate GeodeSecurityUtil and IntegratedSecurityService


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/ee27d73c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/ee27d73c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/ee27d73c

Branch: refs/heads/develop
Commit: ee27d73c4e87824a5dc914c83bfc913947ad989e
Parents: a325d07
Author: Jinmei Liao 
Authored: Sun Sep 11 20:49:48 2016 -0700
Committer: Jinmei Liao 
Committed: Tue Sep 13 13:14:00 2016 -0700

--
 .../cache/tier/sockets/CacheClientProxy.java|   4 +-
 .../internal/security/GeodeSecurityUtil.java| 549 ---
 .../security/IntegratedSecurityService.java | 546 ++
 .../internal/security/SecurityService.java  |  15 +-
 .../security/shiro/CustomAuthRealm.java |   1 +
 .../management/internal/ManagementAgent.java|   4 +-
 .../internal/cli/domain/DataCommandRequest.java |   6 +-
 .../cli/functions/DataCommandFunction.java  |  10 +-
 .../apache/geode/security/PostProcessor.java|   3 +-
 .../security/templates/SamplePostProcessor.java |   3 +-
 .../security/GeodeSecurityUtilTest.java | 288 --
 .../security/IntegratedSecurityServiceTest.java | 290 ++
 .../security/SecurityConfigIntegrationTest.java |  13 +-
 .../GeodeSecurityUtilCustomRealmJUnitTest.java  |  45 --
 .../GeodeSecurityUtilWithIniFileJUnitTest.java  | 143 -
 ...atedSecurityServiceCustomRealmJUnitTest.java |  44 ++
 ...atedSecurityServiceWithIniFileJUnitTest.java | 147 +
 .../security/NoShowValue1PostProcessor.java |   2 +-
 .../PDXGfshPostProcessorOnRemoteServerTest.java |   4 +-
 .../gemfire/security/PDXPostProcessor.java  |   3 +-
 .../security/PDXPostProcessorDUnitTest.java |  10 +-
 .../codeAnalysis/sanctionedSerializables.txt|   4 +-
 .../security/CQPDXPostProcessorDUnitTest.java   |   4 +-
 23 files changed, 958 insertions(+), 1180 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ee27d73c/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/CacheClientProxy.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/CacheClientProxy.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/CacheClientProxy.java
index e94ef35..bc7a34a 100644
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/CacheClientProxy.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/CacheClientProxy.java
@@ -106,10 +106,8 @@ import 
com.gemstone.gemfire.internal.logging.LoggingThreadGroup;
 import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
 import com.gemstone.gemfire.internal.logging.log4j.LogMarker;
 import com.gemstone.gemfire.internal.security.AuthorizeRequestPP;
-import com.gemstone.gemfire.internal.security.GeodeSecurityUtil;
 import com.gemstone.gemfire.internal.security.IntegratedSecurityService;
 import com.gemstone.gemfire.internal.security.SecurityService;
-import com.gemstone.gemfire.internal.util.BlobHelper;
 import com.gemstone.gemfire.security.AccessControl;
 
 /**
@@ -1680,7 +1678,7 @@ public class CacheClientProxy implements ClientSession {
 // post process
 if(this.securityService.needPostProcess()) {
   Object oldValue = clientMessage.getValue();
-  Object newValue = 
GeodeSecurityUtil.postProcess(clientMessage.getRegionName(), 
clientMessage.getKeyOfInterest(), oldValue, clientMessage.valueIsObject());
+  Object newValue = 
IntegratedSecurityService.getSecurityService().postProcess(clientMessage.getRegionName(),
 clientMessage.getKeyOfInterest(), oldValue, clientMessage.valueIsObject());
   clientMessage.setLatestValue(newValue);
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ee27d73c/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
deleted file mode 100644
index 260121d..000
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtil.java
+++ /dev/null
@@ -1,549 +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 

[1/2] incubator-geode git commit: GEODE-17: consolidate GeodeSecurityUtil and IntegratedSecurityService

2016-09-13 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop a325d074f -> ee27d73c4


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ee27d73c/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/GeodeSecurityUtilCustomRealmJUnitTest.java
--
diff --git 
a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/GeodeSecurityUtilCustomRealmJUnitTest.java
 
b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/GeodeSecurityUtilCustomRealmJUnitTest.java
deleted file mode 100644
index 625e48f..000
--- 
a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/GeodeSecurityUtilCustomRealmJUnitTest.java
+++ /dev/null
@@ -1,45 +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 com.gemstone.gemfire.management.internal.security;
-
-import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
-
-import org.apache.geode.security.templates.SampleSecurityManager;
-import org.junit.BeforeClass;
-import org.junit.experimental.categories.Category;
-
-import com.gemstone.gemfire.internal.security.GeodeSecurityUtil;
-import com.gemstone.gemfire.internal.security.IntegratedSecurityService;
-import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
-import com.gemstone.gemfire.test.junit.categories.SecurityTest;
-
-/**
- * Integration tests for {@link GeodeSecurityUtil} using shiro-ini.json.
- *
- * @see GeodeSecurityUtilWithIniFileJUnitTest
- */
-@Category({ IntegrationTest.class, SecurityTest.class })
-public class GeodeSecurityUtilCustomRealmJUnitTest extends 
GeodeSecurityUtilWithIniFileJUnitTest {
-
-  @BeforeClass
-  public static void beforeClass() throws Exception {
-props.put(SampleSecurityManager.SECURITY_JSON, 
"com/gemstone/gemfire/management/internal/security/shiro-ini.json");
-props.put(SECURITY_MANAGER, SampleSecurityManager.class.getName());
-IntegratedSecurityService.getSecurityService().initSecurity(props);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ee27d73c/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
deleted file mode 100644
index 3a7b4de..000
--- 
a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/GeodeSecurityUtilWithIniFileJUnitTest.java
+++ /dev/null
@@ -1,143 +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 com.gemstone.gemfire.management.internal.security;
-
-import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
-import static org.assertj.core.api.Assertions.*;
-
-import java.util.Properties;
-
-import org.apache.geode.security.ResourcePermission;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import com.gemstone.gemfire.internal.security.GeodeSecurityUtil;
-import com.gemstone.gemfire.internal.security.IntegratedSecurityService;
-import com.gemstone.gemfire.internal.security.SecurityService;
-import 

incubator-geode git commit: GEODE-17: pass the properties created by authInit to the security manager

2016-09-13 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 72e9cbe4e -> cd8187b13


GEODE-17: pass the properties created by authInit to the security manager


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/cd8187b1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/cd8187b1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/cd8187b1

Branch: refs/heads/develop
Commit: cd8187b135b269e22e9cdbf5a755cf2d97862efb
Parents: 72e9cbe
Author: Jinmei Liao 
Authored: Sun Sep 11 20:49:48 2016 -0700
Committer: Jinmei Liao 
Committed: Tue Sep 13 07:29:13 2016 -0700

--
 .../membership/gms/auth/GMSAuthenticator.java   |  4 +-
 .../internal/cache/tier/sockets/HandShake.java  |  4 +-
 .../internal/security/GeodeSecurityUtil.java| 34 
 .../security/IntegratedSecurityService.java |  5 +++
 .../internal/security/SecurityService.java  |  1 +
 .../security/shiro/CustomAuthRealm.java | 19 ++---
 .../shiro/GeodeAuthenticationToken.java | 41 
 .../security/shiro/JMXShiroAuthenticator.java   | 20 ++
 .../support/LoginHandlerInterceptor.java|  7 ++--
 ...GMSAuthenticatorWithSecurityManagerTest.java |  8 ++--
 .../security/IntegratedClientAuthDUnitTest.java |  2 +-
 .../gemfire/codeAnalysis/excludedClasses.txt|  1 +
 12 files changed, 100 insertions(+), 46 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/cd8187b1/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
index 7fc212c..9ecd2b7 100755
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
@@ -121,9 +121,7 @@ public class GMSAuthenticator implements Authenticator {
 String failMsg = null;
 try {
   if(this.securityService.isIntegratedSecurity()){
-String username = credentials.getProperty("security-username");
-String password = credentials.getProperty("security-password");
-this.securityService.login(username, password);
+this.securityService.login(credentials);
   }
   else {
 invokeAuthenticator(secProps, member, credentials);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/cd8187b1/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/HandShake.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/HandShake.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/HandShake.java
index 8dfb476..64cf1b6 100644
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/HandShake.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/HandShake.java
@@ -1790,9 +1790,7 @@ public class HandShake implements ClientHandShake
 Authenticator auth = null;
 try {
   if(AcceptorImpl.isIntegratedSecurity()){
-String username = credentials.getProperty("security-username");
-String password = credentials.getProperty("security-password");
-return securityService.login(username, password);
+return securityService.login(credentials);
   }
   else {
 Method instanceGetter = 
ClassLoadUtil.methodFromName(authenticatorMethod);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/cd8187b1/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 5fa5564..260121d 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
@@ -32,11 +32,11 @@ import org.apache.geode.security.PostProcessor;
 import org.apache.geode.security.ResourcePermission;
 import org.apache.geode.security.ResourcePermission.Operation;
 import org.apache.geode.security.ResourcePermission.Resource;
+import 

incubator-geode git commit: Revert "GEODE-1570: upgrade spring libraries and fix tests"

2016-09-08 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop c1216eb18 -> 8fd8d79df


Revert "GEODE-1570: upgrade spring libraries and fix tests"

This reverts commit 906c211ab1f6bacbd29a6d21d8186bb0787173f9.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/8fd8d79d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/8fd8d79d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/8fd8d79d

Branch: refs/heads/develop
Commit: 8fd8d79dfd67b325da1497ce7ad5c78b6aa9c6b5
Parents: c1216eb
Author: Jinmei Liao 
Authored: Thu Sep 8 14:14:52 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Sep 8 14:17:46 2016 -0700

--
 .../internal/web/RestInterfaceJUnitTest.java|  51 +++-
 .../internal/web/RestSecurityDUnitTest.java | 128 +--
 .../src/test/resources/expected_jars.txt|   2 +-
 geode-core/build.gradle |   2 -
 .../cli/shell/GfshInitFileJUnitTest.java|  18 ++-
 geode-pulse/build.gradle|   4 +
 .../security/GemFireAuthentication.java |   2 +-
 .../security/GemFireAuthenticationProvider.java |   1 +
 .../service/MemberGatewayHubService.java|  11 +-
 geode-pulse/src/main/webapp/Login.html  |   6 +-
 .../webapp/WEB-INF/mvc-dispatcher-servlet.xml   |   6 +-
 .../src/main/webapp/WEB-INF/spring-security.xml |  17 +--
 .../tools/pulse/tests/PulseAuthTest.java|   5 +-
 .../tools/pulse/tests/PulseAutomatedTest.java   |   2 +-
 .../rest/internal/web/util/JSONUtils.java   | 105 +--
 .../rest/internal/web/util/JsonWriter.java  |  24 
 .../src/main/webapp/WEB-INF/geode-servlet.xml   |  14 +-
 .../main/webapp/WEB-INF/geode-mgmt-servlet.xml  |   6 +-
 gradle/dependency-resolution.gradle |  19 +++
 gradle/dependency-versions.properties   |  20 +--
 20 files changed, 251 insertions(+), 192 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
--
diff --git 
a/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
 
b/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
index 27859fc..8246671 100644
--- 
a/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
+++ 
b/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
@@ -16,26 +16,16 @@
  */
 package com.gemstone.gemfire.rest.internal.web;
 
-import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
-import static org.junit.Assert.*;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Properties;
-import java.util.Set;
-
-import javax.annotation.Resource;
-
 import com.fasterxml.jackson.core.JsonParser.Feature;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.gemstone.gemfire.cache.*;
+import com.gemstone.gemfire.internal.AvailablePortHelper;
+import com.gemstone.gemfire.internal.GemFireVersion;
+import com.gemstone.gemfire.internal.util.IOUtils;
+import com.gemstone.gemfire.management.internal.AgentUtil;
+import com.gemstone.gemfire.pdx.*;
+import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -52,22 +42,15 @@ import org.springframework.util.StringUtils;
 import org.springframework.web.client.ResponseErrorHandler;
 import org.springframework.web.client.RestTemplate;
 
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.DataPolicy;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionFactory;
-import com.gemstone.gemfire.cache.RegionService;
-import com.gemstone.gemfire.internal.AvailablePortHelper;
-import com.gemstone.gemfire.internal.GemFireVersion;
-import com.gemstone.gemfire.internal.util.IOUtils;
-import com.gemstone.gemfire.management.internal.AgentUtil;
-import com.gemstone.gemfire.pdx.PdxInstance;
-import com.gemstone.gemfire.pdx.PdxReader;
-import com.gemstone.gemfire.pdx.PdxSerializable;
-import com.gemstone.gemfire.pdx.PdxWriter;
-import com.gemstone.gemfire.pdx.ReflectionBasedAutoSerializer;
-import 

incubator-geode git commit: GEODE-1570: upgrade spring libraries and fix tests

2016-09-08 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 916774d36 -> 906c211ab


GEODE-1570: upgrade spring libraries and fix tests

* updated the spring framework libraries
* updated the spring security libraries and related upgrades
* fixed the tests and uitests


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/906c211a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/906c211a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/906c211a

Branch: refs/heads/develop
Commit: 906c211ab1f6bacbd29a6d21d8186bb0787173f9
Parents: 916774d
Author: Jinmei Liao 
Authored: Tue Sep 6 11:16:25 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Sep 8 08:42:28 2016 -0700

--
 .../internal/web/RestInterfaceJUnitTest.java|  51 +---
 .../internal/web/RestSecurityDUnitTest.java | 128 ++-
 .../src/test/resources/expected_jars.txt|   2 +-
 geode-core/build.gradle |   2 +
 .../cli/shell/GfshInitFileJUnitTest.java|  18 +--
 geode-pulse/build.gradle|   4 -
 .../security/GemFireAuthentication.java |   2 +-
 .../security/GemFireAuthenticationProvider.java |   1 -
 .../service/MemberGatewayHubService.java|  11 +-
 geode-pulse/src/main/webapp/Login.html  |   6 +-
 .../webapp/WEB-INF/mvc-dispatcher-servlet.xml   |   6 +-
 .../src/main/webapp/WEB-INF/spring-security.xml |  17 ++-
 .../tools/pulse/tests/PulseAuthTest.java|   5 +-
 .../tools/pulse/tests/PulseAutomatedTest.java   |   2 +-
 .../rest/internal/web/util/JSONUtils.java   | 105 ++-
 .../rest/internal/web/util/JsonWriter.java  |  24 
 .../src/main/webapp/WEB-INF/geode-servlet.xml   |  14 +-
 .../main/webapp/WEB-INF/geode-mgmt-servlet.xml  |   6 +-
 gradle/dependency-resolution.gradle |  19 ---
 gradle/dependency-versions.properties   |  20 +--
 20 files changed, 192 insertions(+), 251 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/906c211a/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
--
diff --git 
a/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
 
b/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
index 8246671..27859fc 100644
--- 
a/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
+++ 
b/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
@@ -16,16 +16,26 @@
  */
 package com.gemstone.gemfire.rest.internal.web;
 
+import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
+import static org.junit.Assert.*;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Properties;
+import java.util.Set;
+
+import javax.annotation.Resource;
+
 import com.fasterxml.jackson.core.JsonParser.Feature;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.gemstone.gemfire.cache.*;
-import com.gemstone.gemfire.internal.AvailablePortHelper;
-import com.gemstone.gemfire.internal.GemFireVersion;
-import com.gemstone.gemfire.internal.util.IOUtils;
-import com.gemstone.gemfire.management.internal.AgentUtil;
-import com.gemstone.gemfire.pdx.*;
-import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -42,15 +52,22 @@ import org.springframework.util.StringUtils;
 import org.springframework.web.client.ResponseErrorHandler;
 import org.springframework.web.client.RestTemplate;
 
-import javax.annotation.Resource;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
-import static org.junit.Assert.*;
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.DataPolicy;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionFactory;
+import com.gemstone.gemfire.cache.RegionService;
+import com.gemstone.gemfire.internal.AvailablePortHelper;
+import com.gemstone.gemfire.internal.GemFireVersion;
+import 

incubator-geode git commit: GEODE-1834: initilize the socketcreator with the correct ssl settings

2016-09-06 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop bb829d3dc -> a4c38a469


GEODE-1834: initilize the socketcreator with the correct ssl settings


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/a4c38a46
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/a4c38a46
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/a4c38a46

Branch: refs/heads/develop
Commit: a4c38a469d0726c8fd59f444e342d3d062c47004
Parents: bb829d3
Author: Jinmei Liao 
Authored: Thu Sep 1 09:27:11 2016 -0700
Committer: Jinmei Liao 
Committed: Tue Sep 6 08:27:45 2016 -0700

--
 .../internal/JmxManagerLocatorRequest.java  |   8 +-
 .../internal/cli/commands/ShellCommands.java|  21 ++-
 .../ConnectToLocatorSSLDUnitTest.java   | 136 +++
 3 files changed, 150 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a4c38a46/geode-core/src/main/java/com/gemstone/gemfire/management/internal/JmxManagerLocatorRequest.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/JmxManagerLocatorRequest.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/JmxManagerLocatorRequest.java
index 861f51d..ac250d0 100644
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/JmxManagerLocatorRequest.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/JmxManagerLocatorRequest.java
@@ -25,6 +25,7 @@ import java.util.Properties;
 
 import com.gemstone.gemfire.distributed.internal.tcpserver.TcpClient;
 import com.gemstone.gemfire.internal.DataSerializableFixedID;
+import com.gemstone.gemfire.internal.SocketCreator;
 import com.gemstone.gemfire.internal.Version;
 
 /**
@@ -80,13 +81,14 @@ public class JmxManagerLocatorRequest implements 
DataSerializableFixedID {
 InetAddress networkAddress = InetAddress.getByName(locatorHost);
 
 try {
-  // Changes for 46623
-  // initialize the SocketCreator with props which may contain SSL config
-  // empty distConfProps will reset SocketCreator
   if (sslConfigProps != null) {
 distributionConfigProps.putAll(sslConfigProps);
   }
 
+  // re-initialize the SocketCreator with the sslConfigProps. Note this 
initializes the SocketCreator with cluster-ssl-* settings since
+  // we are connecting to the locator only.
+  SocketCreator.getDefaultInstance(distributionConfigProps);
+
   Object responseFromServer = TcpClient.requestToServer(networkAddress, 
locatorPort, SINGLETON, msTimeout);
 
   return (JmxManagerLocatorResponse) responseFromServer;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a4c38a46/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommands.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommands.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommands.java
index 09a25a6..daa7262 100644
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommands.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommands.java
@@ -17,6 +17,8 @@
 
 package com.gemstone.gemfire.management.internal.cli.commands;
 
+import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
+
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
@@ -38,11 +40,18 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Properties;
 import java.util.Set;
+
 import javax.net.ssl.HttpsURLConnection;
 import javax.net.ssl.KeyManagerFactory;
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.TrustManagerFactory;
 
+import org.springframework.shell.core.CommandMarker;
+import org.springframework.shell.core.ExitShellRequest;
+import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
+import org.springframework.shell.core.annotation.CliCommand;
+import org.springframework.shell.core.annotation.CliOption;
+
 import com.gemstone.gemfire.distributed.internal.DistributionConfig;
 import com.gemstone.gemfire.internal.ClassPathLoader;
 import com.gemstone.gemfire.internal.DSFIDFactory;
@@ -79,14 +88,6 @@ import 
com.gemstone.gemfire.management.internal.web.shell.HttpOperationInvoker;
 import 
com.gemstone.gemfire.management.internal.web.shell.RestHttpOperationInvoker;
 import com.gemstone.gemfire.security.AuthenticationFailedException;
 
-import org.springframework.shell.core.CommandMarker;

incubator-geode git commit: GEODE-1715: Add socket-buffer-size and message-time-to-live to server command line.

2016-08-08 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop b974d50f6 -> 01567b2c4


GEODE-1715: Add socket-buffer-size and message-time-to-live to server command 
line.

* this closes #221


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/01567b2c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/01567b2c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/01567b2c

Branch: refs/heads/develop
Commit: 01567b2c4000f628e5cbd680fb35d1b7d70d84a1
Parents: b974d50
Author: Srikrishan Malik 
Authored: Fri Jul 29 18:52:27 2016 +0530
Committer: Jinmei Liao 
Committed: Mon Aug 8 14:06:44 2016 -0700

--
 .../cli/commands/LauncherLifecycleCommandsJUnitTest.java | 5 -
 .../internal/cli/commands/LauncherLifecycleCommands.java | 8 
 2 files changed, 12 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/01567b2c/geode-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsJUnitTest.java
--
diff --git 
a/geode-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsJUnitTest.java
 
b/geode-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsJUnitTest.java
index f9be929..84b8668 100755
--- 
a/geode-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsJUnitTest.java
+++ 
b/geode-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsJUnitTest.java
@@ -456,7 +456,8 @@ public class LauncherLifecycleCommandsJUnitTest {
 
ServerLauncher.Command.START).setDisableDefaultServer(true).setMemberName(
 "testCreateServerCommandLine").setRebalance(true)
 //.setServerBindAddress("localhost")
-
.setServerPort(41214).setCriticalHeapPercentage(95.5f).setEvictionHeapPercentage(85.0f).build();
+
.setServerPort(41214).setCriticalHeapPercentage(95.5f).setEvictionHeapPercentage(85.0f)
+.setSocketBufferSize(1024*1024).setMessageTimeToLive(93).build();
 
 String[] commandLineElements = 
launcherCommands.createStartServerCommandLine(serverLauncher, null, null,
 new Properties(), null, false, new String[0], false, null, null);
@@ -476,6 +477,8 @@ public class LauncherLifecycleCommandsJUnitTest {
 String.format("--critical-heap-percentage=%1$s", 
serverLauncher.getCriticalHeapPercentage()));
 expectedCommandLineElements.add(
 String.format("--eviction-heap-percentage=%1$s", 
serverLauncher.getEvictionHeapPercentage()));
+expectedCommandLineElements.add(String.format("--socket-buffer-size=%1$d", 
serverLauncher.getSocketBufferSize()));
+
expectedCommandLineElements.add(String.format("--message-time-to-live=%1$d", 
serverLauncher.getMessageTimeToLive()));
 
 for (String commandLineElement : commandLineElements) {
   expectedCommandLineElements.remove(commandLineElement.toLowerCase());

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/01567b2c/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommands.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommands.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommands.java
index 43d1558..7b04c06 100755
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommands.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommands.java
@@ -1820,6 +1820,14 @@ public class LauncherLifecycleCommands extends 
AbstractCommandsSupport {
   commandLine.add("--" + CliStrings.START_SERVER__MAX__THREADS + "=" + 
launcher.getMaxThreads());
 }
 
+if (launcher.getMessageTimeToLive() != null) {
+  commandLine.add("--" + CliStrings.START_SERVER__MESSAGE__TIME__TO__LIVE 
+ "=" + launcher.getMessageTimeToLive());
+}
+
+if (launcher.getSocketBufferSize() != null) {
+  commandLine.add("--" + CliStrings.START_SERVER__SOCKET__BUFFER__SIZE + 
"=" + launcher.getSocketBufferSize());
+}
+
 if (launcher.getHostNameForClients() != null) {
   commandLine.add("--" + CliStrings.START_SERVER__HOSTNAME__FOR__CLIENTS + 
"=" + launcher.getHostNameForClients());
 }



incubator-geode git commit: Geode-1569: require principal to be Serializable so that post process can happen in a remote server

2016-08-08 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 5f8405495 -> 774044eeb


Geode-1569: require principal to be Serializable so that post process can 
happen in a remote server


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/774044ee
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/774044ee
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/774044ee

Branch: refs/heads/develop
Commit: 774044eeb6a5f1ce4456afda19f1b6b12c9e0cc4
Parents: 5f84054
Author: Jinmei Liao 
Authored: Thu Aug 4 16:15:33 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Aug 8 08:26:14 2016 -0700

--
 .../internal/security/GeodeSecurityUtil.java|  24 ++--
 .../security/IntegratedSecurityService.java |   6 +-
 .../internal/security/SecurityService.java  |   6 +-
 .../security/shiro/CustomAuthRealm.java |   6 +-
 .../internal/cli/commands/DataCommands.java |   8 +-
 .../internal/cli/domain/DataCommandRequest.java |  10 ++
 .../cli/functions/DataCommandFunction.java  |  20 ++-
 .../apache/geode/security/PostProcessor.java|   7 +-
 .../apache/geode/security/SecurityManager.java  |   8 +-
 .../security/templates/SamplePostProcessor.java |  12 +-
 .../templates/SampleSecurityManager.java|  12 +-
 .../security/AbstractSecureServerDUnitTest.java |  16 +--
 .../security/NoShowValue1PostProcessor.java |   4 +-
 .../PDXGfshPostProcessorOnRemoteServerTest.java | 142 +++
 .../gemfire/security/PDXPostProcessor.java  |   6 +-
 .../gemfire/security/SpySecurityManager.java|   4 +-
 16 files changed, 237 insertions(+), 54 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/774044ee/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 a9c2162..f73790b 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
@@ -19,19 +19,19 @@ package com.gemstone.gemfire.internal.security;
 import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
 
 import java.io.IOException;
+import java.io.Serializable;
 import java.lang.reflect.Method;
 import java.security.AccessController;
-import java.security.Principal;
 import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.Callable;
 
 import org.apache.commons.lang.SerializationException;
 import org.apache.commons.lang.StringUtils;
+import org.apache.geode.security.PostProcessor;
 import org.apache.geode.security.ResourcePermission;
 import org.apache.geode.security.ResourcePermission.Operation;
 import org.apache.geode.security.ResourcePermission.Resource;
-import org.apache.geode.security.PostProcessor;
 import org.apache.geode.security.SecurityManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.shiro.SecurityUtils;
@@ -366,14 +366,20 @@ public class GeodeSecurityUtil {
   }
 
   public static Object postProcess(String regionPath, Object key, Object 
value, boolean valueIsSerialized){
-if(!needPostProcess())
-  return value;
-
-Subject subject = getSubject();
+return postProcess(null, regionPath, key, value, valueIsSerialized);
+  }
 
-if(subject == null)
+  public static Object postProcess(Serializable principal, String regionPath, 
Object key, Object value, boolean valueIsSerialized) {
+if (!needPostProcess())
   return value;
 
+if (principal == null) {
+  Subject subject = getSubject();
+  if (subject == null)
+return value;
+  principal = (Serializable) subject.getPrincipal();
+}
+
 String regionName = StringUtils.stripStart(regionPath, "/");
 Object newValue = null;
 
@@ -382,14 +388,14 @@ public class GeodeSecurityUtil {
 if (valueIsSerialized && value instanceof byte[]) {
   try {
 Object oldObj = EntryEventImpl.deserialize((byte[]) value);
-Object newObj = 
postProcessor.processRegionValue((Principal)subject.getPrincipal(), regionName, 
key,  oldObj);
+Object newObj = postProcessor.processRegionValue(principal, 
regionName, key,  oldObj);
 newValue = BlobHelper.serializeToBlob(newObj);
   } catch (IOException|SerializationException e) {
 throw new GemFireIOException("Exception de/serializing entry value", 
e);
   }
 }
 else {
-  newValue = postProcessor.processRegionValue((Principal) 

incubator-geode git commit: GEODE-1467: Rename servlet URLs from gemfire to geode

2016-08-05 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop c7a0a458f -> fd4df9aac


GEODE-1467: Rename servlet URLs from gemfire to geode

* Add a second servlet for each.  This allows both the old and new URL contexts 
for a time.
* Updated some unit tests to use Parameterized so that both endoints will be 
tested.
* This closes #227


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/fd4df9aa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/fd4df9aa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/fd4df9aa

Branch: refs/heads/develop
Commit: fd4df9aac005aabcd585228666a6bc852022924d
Parents: c7a0a45
Author: Kevin J. Duling 
Authored: Thu Jul 28 15:07:14 2016 -0700
Committer: Jinmei Liao 
Committed: Fri Aug 5 09:01:39 2016 -0700

--
 ...stAPIOnRegionFunctionExecutionDUnitTest.java | 326 ++-
 .../web/controllers/RestAPITestBase.java|  76 +++--
 .../RestAPIsAndInterOpsDUnitTest.java   |  74 +++--
 ...tAPIsOnGroupsFunctionExecutionDUnitTest.java |  24 +-
 ...APIsOnMembersFunctionExecutionDUnitTest.java | 108 +++---
 .../controllers/RestAPIsWithSSLDUnitTest.java   |  89 +++--
 .../management/internal/ManagementAgent.java|   4 +
 .../gemfire/management/internal/RestAgent.java  |  20 +-
 .../main/webapp/WEB-INF/gemfire-api-servlet.xml |  85 -
 .../src/main/webapp/WEB-INF/geode-servlet.xml   |  85 +
 geode-web-api/src/main/webapp/WEB-INF/web.xml   |   4 +-
 .../src/main/webapp/WEB-INF/gemfire-servlet.xml |  59 
 .../main/webapp/WEB-INF/geode-mgmt-servlet.xml  |  59 
 geode-web/src/main/webapp/WEB-INF/web.xml   |   4 +-
 .../ConnectCommandWithHttpAndSSLDUnitTest.java  |  20 +-
 15 files changed, 577 insertions(+), 460 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fd4df9aa/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/controllers/RestAPIOnRegionFunctionExecutionDUnitTest.java
--
diff --git 
a/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/controllers/RestAPIOnRegionFunctionExecutionDUnitTest.java
 
b/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/controllers/RestAPIOnRegionFunctionExecutionDUnitTest.java
index d384fef..62ddb35 100644
--- 
a/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/controllers/RestAPIOnRegionFunctionExecutionDUnitTest.java
+++ 
b/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/controllers/RestAPIOnRegionFunctionExecutionDUnitTest.java
@@ -16,17 +16,31 @@
  */
 package com.gemstone.gemfire.rest.internal.web.controllers;
 
-import org.junit.experimental.categories.Category;
-import org.junit.Test;
-
 import static org.junit.Assert.*;
 
-import com.gemstone.gemfire.test.dunit.cache.internal.JUnit4CacheTestCase;
-import com.gemstone.gemfire.test.dunit.internal.JUnit4DistributedTestCase;
-import com.gemstone.gemfire.test.junit.categories.DistributedTest;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 import com.gemstone.gemfire.LogWriter;
-import com.gemstone.gemfire.cache.*;
+import com.gemstone.gemfire.cache.AttributesFactory;
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.DataPolicy;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionAttributes;
+import com.gemstone.gemfire.cache.Scope;
 import com.gemstone.gemfire.cache.execute.FunctionContext;
 import com.gemstone.gemfire.cache.execute.FunctionService;
 import com.gemstone.gemfire.cache.execute.RegionFunctionContext;
@@ -38,149 +52,35 @@ import 
com.gemstone.gemfire.internal.cache.PartitionedRegion;
 import com.gemstone.gemfire.internal.cache.PartitionedRegionTestHelper;
 import com.gemstone.gemfire.rest.internal.web.RestFunctionTemplate;
 import com.gemstone.gemfire.test.dunit.VM;
-import org.apache.http.client.methods.CloseableHttpResponse;
-
-import java.io.Serializable;
-import java.util.*;
+import com.gemstone.gemfire.test.junit.categories.DistributedTest;
+import 
com.gemstone.gemfire.test.junit.runners.CategoryWithParameterizedRunnerFactory;
 
 /**
  * Dunit Test to validate OnRegion function execution with REST APIs
- *
  * @since GemFire 8.0
  */
 
 @Category(DistributedTest.class)

incubator-geode git commit: GEODE-1570: add rest security test harness and rearranged the tests

2016-08-04 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop fa36a0c38 -> 88247e321


GEODE-1570: add rest security test harness and rearranged the tests

rearranged the 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/88247e32
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/88247e32
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/88247e32

Branch: refs/heads/develop
Commit: 88247e32132c4a0f2de00db51b57d6e3fe48b5f2
Parents: fa36a0c
Author: Jinmei Liao 
Authored: Tue Aug 2 11:10:16 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Aug 4 08:59:32 2016 -0700

--
 .../internal/web/RestSecurityDUnitTest.java |  80 +
 ...ractIntegratedClientAuthDistributedTest.java | 141 
 .../security/AbstractSecureServerDUnitTest.java | 150 +
 .../security/IntegratedClientAuthDUnitTest.java |   2 +-
 ...tedClientContainsKeyAuthDistributedTest.java |   2 +-
 ...entDestroyInvalidateAuthDistributedTest.java |   2 +-
 ...dClientDestroyRegionAuthDistributedTest.java |   2 +-
 ...lientExecuteFunctionAuthDistributedTest.java |   2 +-
 ...xecuteRegionFunctionAuthDistributedTest.java |   2 +-
 ...tegratedClientGetAllAuthDistributedTest.java |   2 +-
 ...tGetClientPRMetaDataAuthDistributedTest.java |   2 +-
 ...ientPartitionAttrCmdAuthDistributedTest.java |   2 +-
 ...gratedClientGetEntryAuthDistributedTest.java |   2 +-
 ...tegratedClientGetPutAuthDistributedTest.java |   2 +-
 ...tedClientRegionClearAuthDistributedTest.java |   2 +-
 ...ientRegisterInterestAuthDistributedTest.java |   2 +-
 ...ratedClientRemoveAllAuthDistributedTest.java |   2 +-
 ...IntegratedClientSizeAuthDistributedTest.java |   2 +-
 ...ntUnregisterInterestAuthDistributedTest.java |   2 +-
 ...urityNoShowValue1PostProcessorDUnitTest.java |  86 -
 ...ntegratedSecurityPostProcessorDUnitTest.java | 126 
 .../NoShowValue1PostProcessorDUnitTest.java |  86 +
 .../gemfire/security/PDXPostProcessor.java  |  45 +++
 .../security/PDXPostProcessorDUnitTest.java | 233 +
 .../security/PostProcessorDUnitTest.java| 126 
 .../security/CQPDXPostProcessorDUnitTest.java   | 116 +++
 .../security/CQPostProcessorDunitTest.java  |   2 +-
 .../ClientQueryAuthDistributedTest.java |   2 +-
 .../security/PDXPostProcessorDUnitTest.java | 323 ---
 29 files changed, 854 insertions(+), 694 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/88247e32/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestSecurityDUnitTest.java
--
diff --git 
a/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestSecurityDUnitTest.java
 
b/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestSecurityDUnitTest.java
new file mode 100644
index 000..57b70d6
--- /dev/null
+++ 
b/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestSecurityDUnitTest.java
@@ -0,0 +1,80 @@
+package com.gemstone.gemfire.rest.internal.web;
+
+import static org.junit.Assert.*;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import com.gemstone.gemfire.internal.AvailablePortHelper;
+import com.gemstone.gemfire.security.AbstractSecureServerDUnitTest;
+import com.gemstone.gemfire.test.junit.categories.DistributedTest;
+import com.gemstone.gemfire.test.junit.categories.SecurityTest;
+
+@Category({ DistributedTest.class, SecurityTest.class})
+public class RestSecurityDUnitTest extends AbstractSecureServerDUnitTest {
+  private String endPoint = null;
+  public RestSecurityDUnitTest(){
+int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);
+this.jmxPort = ports[0];
+this.restPort = ports[1];
+endPoint = "http://localhost:"+restPort+"/gemfire-api/v1;;
+  }
+  @Test
+  public void test(){
+client1.invoke(()->{
+  JSONArray response = doGet("/servers");
+  assertEquals(response.length(), 1);
+  assertEquals(response.get(0), "http://localhost:"+this.restPort);
+});
+  }
+
+
+  private JSONArray doGet(String uri) {
+HttpGet get = new HttpGet(endPoint + uri);
+

incubator-geode git commit: GEODE-1643: make sure the security manager works on Gateway communication

2016-08-01 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop f6fb4e36f -> d9bec3178


GEODE-1643: make sure the security manager works on Gateway communication


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/d9bec317
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/d9bec317
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/d9bec317

Branch: refs/heads/develop
Commit: d9bec3178bf67117c0e240fe67a2b0f22759027b
Parents: f6fb4e3
Author: Jinmei Liao 
Authored: Mon Aug 1 12:03:07 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Aug 1 12:14:46 2016 -0700

--
 .../cache/tier/sockets/ServerConnection.java|   2 +-
 .../wan/misc/NewWanAuthenticationDUnitTest.java | 164 ++-
 2 files changed, 163 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/d9bec317/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/ServerConnection.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/ServerConnection.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/ServerConnection.java
index 682e55b..bdbef09 100644
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/ServerConnection.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/ServerConnection.java
@@ -772,7 +772,7 @@ public class ServerConnection implements Runnable {
 }
 
 // if a subject exists for this uniqueId, binds the subject to this 
thread so that we can do authorization later
-if(AcceptorImpl.isIntegratedSecurity() && !isInternalMessage()) {
+if(AcceptorImpl.isIntegratedSecurity() && !isInternalMessage() && 
this.communicationMode != Acceptor.GATEWAY_TO_GATEWAY) {
   long uniqueId = getUniqueId();
   Subject subject = this.clientUserAuths.getSubject(uniqueId);
   if(subject!=null) {

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/d9bec317/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/NewWanAuthenticationDUnitTest.java
--
diff --git 
a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/NewWanAuthenticationDUnitTest.java
 
b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/NewWanAuthenticationDUnitTest.java
index 338f253..76940ea 100644
--- 
a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/NewWanAuthenticationDUnitTest.java
+++ 
b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/NewWanAuthenticationDUnitTest.java
@@ -20,12 +20,16 @@ import static 
com.gemstone.gemfire.distributed.ConfigurationProperties.*;
 import static com.gemstone.gemfire.test.dunit.Assert.*;
 
 import java.util.Properties;
+import java.util.concurrent.TimeUnit;
 
+import com.jayway.awaitility.Awaitility;
+import org.apache.geode.security.templates.SampleSecurityManager;
 import org.apache.logging.log4j.Logger;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.Region;
 import com.gemstone.gemfire.distributed.DistributedMember;
 import com.gemstone.gemfire.distributed.DistributedSystem;
 import com.gemstone.gemfire.internal.Assert;
@@ -72,7 +76,8 @@ public class NewWanAuthenticationDUnitTest extends 
WANTestBase {
 }
 Properties javaProps1 = gen.getJavaProperties();
 
-Properties credentials2 = gen.getValidCredentials(2);
+// vm3's invalid credentials
+Properties credentials2 = gen.getInvalidCredentials(1);
 if (extraProps != null) {
   credentials2.putAll(extraProps);
 }
@@ -80,6 +85,8 @@ public class NewWanAuthenticationDUnitTest extends 
WANTestBase {
 
 Properties props1 = buildProperties(clientauthenticator, clientauthInit,
   null, credentials1, null);
+
+// have vm 3 start a cache with invalid credentails
 Properties props2 = buildProperties(clientauthenticator, clientauthInit,
   null, credentials2, null);
 
@@ -105,8 +112,61 @@ public class NewWanAuthenticationDUnitTest extends 
WANTestBase {
   getTestMethodName() + "_RR", null, isOffHeap()  ));
 logger.info("Created RR in vm3");
 
+// this tests verifies that even though vm3 has invalid credentials, vm2 
can still send data to vm3 because
+// vm2 has valid credentials
+vm2.invoke(() -> WANTestBase.startSender( "ln" ));
+vm2.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
+
+vm2.invoke(() -> 

incubator-geode git commit: GEODE-1569: post process for serialized domain objects

2016-08-01 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop c7530d06b -> 90e00bf97


GEODE-1569: post process for serialized domain objects

* for client/server retreival, post process the value before it was put into 
the message
* for gfsh commands, post process the value before it was put into the command 
result json


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/90e00bf9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/90e00bf9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/90e00bf9

Branch: refs/heads/develop
Commit: 90e00bf97d4287f5462cf73eab2b5810c69c7077
Parents: c7530d0
Author: Jinmei Liao 
Authored: Thu Jul 28 09:11:56 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Aug 1 08:15:45 2016 -0700

--
 .../cache/tier/sockets/BaseCommandQuery.java| 123 +++
 .../cache/tier/sockets/CacheClientProxy.java|  17 +-
 .../cache/tier/sockets/command/Get70.java   |   2 +-
 .../cache/tier/sockets/command/GetAll.java  |   2 +-
 .../cache/tier/sockets/command/GetAll651.java   |   2 +-
 .../cache/tier/sockets/command/GetAll70.java|   2 +-
 .../internal/security/GeodeSecurityUtil.java|  40 ++-
 .../internal/cli/commands/DataCommands.java |   3 -
 .../cli/functions/DataCommandFunction.java  |  27 +-
 .../internal/cli/json/GfJsonObject.java |  16 +
 ...ractIntegratedClientAuthDistributedTest.java |  39 ++-
 ...ntegratedSecurityPostProcessorDUnitTest.java |  12 +-
 .../ClientQueryAuthDistributedTest.java | 122 +++
 ...ntegratedClientQueryAuthDistributedTest.java | 122 ---
 .../security/PDXPostProcessorDUnitTest.java | 323 +++
 .../src/main/java/org/json/JSONObject.java  |   7 +-
 16 files changed, 600 insertions(+), 259 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/90e00bf9/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/BaseCommandQuery.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/BaseCommandQuery.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/BaseCommandQuery.java
index 0e32fb8..f788d02 100644
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/BaseCommandQuery.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/BaseCommandQuery.java
@@ -157,39 +157,14 @@ public abstract class BaseCommandQuery extends 
BaseCommand {
   if (result instanceof SelectResults) {
 SelectResults selectResults = (SelectResults)result;
 
-// post process, iterate through the result for post processing
-if(GeodeSecurityUtil.needPostProcess()) {
-  List list = selectResults.asList();
-  for (Iterator valItr = list.iterator(); valItr.hasNext(); ) {
-Object value = valItr.next();
-if (value == null)
-  continue;
-
-if (value instanceof CqEntry) {
-  CqEntry cqEntry = (CqEntry) value;
-  Object cqNewValue = GeodeSecurityUtil.postProcess(null, 
cqEntry.getKey(), cqEntry.getValue());
-  if (!cqEntry.getValue().equals(cqNewValue)) {
-selectResults.remove(value);
-selectResults.add(new CqEntry(cqEntry.getKey(), cqNewValue));
-  }
-} else {
-  Object newValue = GeodeSecurityUtil.postProcess(null, null, 
value);
-  if (!value.equals(newValue)) {
-selectResults.remove(value);
-selectResults.add(newValue);
-  }
-}
-  }
-}
-
 if (logger.isDebugEnabled()) {
   logger.debug("Query Result size for : {} is {}", 
query.getQueryString(), selectResults.size());
 }
-
+
 CollectionType collectionType = null;
 boolean sendCqResultsWithKey = true;
 boolean isStructs = false;
- 
+
 // check if resultset has serialized objects, so that they could be 
sent
 // as ObjectPartList
 boolean hasSerializedObjects = ((DefaultQuery) query)
@@ -201,7 +176,7 @@ public abstract class BaseCommandQuery extends BaseCommand {
 // The results in a StructSet are stored in Object[]s
 // Get them as Object[]s for the objs[] in order to avoid duplicating
 // the StructTypes
-
+
 // Object[] objs = new Object[selectResults.size()];
 // Get the collection type (which includes the element type)
 // (used to generate the appropriate instance on the client)
@@ -215,15 +190,15 @@ public abstract class BaseCommandQuery 

incubator-geode git commit: GEODE-1617: Regions can be created with a variety of characters that are unsupported

2016-07-25 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 40f95887b -> 7ca571c56


GEODE-1617: Regions can be created with a variety of characters that are 
unsupported

* Test for valid characters when creating non-internal regions
* Updated unit tests and added a new isInternalRegion field to 
InternalRegionAttributes
* Fixed issue with HA region.
* Found a potential issue with Attributes for a region.
* This closes #201


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/7ca571c5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/7ca571c5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/7ca571c5

Branch: refs/heads/develop
Commit: 7ca571c56e8d49e35b9e4f445bd3ca4fbdea974e
Parents: 40f9588
Author: Kevin J. Duling 
Authored: Mon Jul 11 14:20:56 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Jul 25 10:25:17 2016 -0700

--
 .../modules/util/CreateRegionFunction.java  |  33 +++-
 .../gemfire/cache/DynamicRegionFactory.java |   1 +
 .../gemstone/gemfire/cache/RegionFactory.java   |   1 +
 .../internal/cache/GemFireCacheImpl.java|  11 +-
 .../gemfire/internal/cache/HARegion.java|   9 +-
 .../internal/cache/InternalRegionArguments.java |  11 +-
 .../gemfire/internal/cache/LocalRegion.java | 187 ---
 .../internal/cache/PartitionedRegionHelper.java |  34 +++-
 .../parallel/ParallelGatewaySenderQueue.java|  10 +-
 .../wan/serial/SerialGatewaySenderQueue.java|  65 +--
 .../apache/geode/redis/GeodeRedisServer.java|  80 +---
 .../gemfire/cache/query/QueryJUnitTest.java | 104 +--
 .../gemfire/cache/query/RegionJUnitTest.java|  16 +-
 .../gemfire/distributed/LocatorDUnitTest.java   |  48 +++--
 .../PartitionedRegionCreationDUnitTest.java |  33 +---
 .../cache/tier/sockets/Bug36829DUnitTest.java   |  13 +-
 .../cache/tier/sockets/Bug37805DUnitTest.java   |   2 +-
 .../RegionCreateDestroyDUnitTest.java   | 174 +
 .../management/RegionManagementDUnitTest.java   |  23 +--
 19 files changed, 564 insertions(+), 291 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/7ca571c5/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java
--
diff --git 
a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java
 
b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java
index 564ccb7..342968c 100644
--- 
a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java
+++ 
b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java
@@ -16,28 +16,34 @@
 */
 package com.gemstone.gemfire.modules.util;
 
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Properties;
+
+import com.gemstone.gemfire.InternalGemFireError;
+import com.gemstone.gemfire.cache.AttributesFactory;
 import com.gemstone.gemfire.cache.Cache;
 import com.gemstone.gemfire.cache.CacheFactory;
 import com.gemstone.gemfire.cache.Declarable;
 import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionAttributes;
 import com.gemstone.gemfire.cache.RegionFactory;
 import com.gemstone.gemfire.cache.RegionShortcut;
+import com.gemstone.gemfire.cache.Scope;
 import com.gemstone.gemfire.cache.client.ClientCache;
 import com.gemstone.gemfire.cache.execute.Function;
 import com.gemstone.gemfire.cache.execute.FunctionContext;
 import com.gemstone.gemfire.cache.partition.PartitionRegionHelper;
 import com.gemstone.gemfire.distributed.DistributedLockService;
 import com.gemstone.gemfire.distributed.internal.locks.DistributedMemberLock;
+import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
+import com.gemstone.gemfire.internal.cache.InternalRegionArguments;
 import com.gemstone.gemfire.internal.cache.PartitionedRegion;
 import com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlGenerator;
 import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
 
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Properties;
-
 public class CreateRegionFunction implements Function, Declarable {
 
   private static final long serialVersionUID = -9210226844302128969L;
@@ -195,7 +201,7 @@ public class CreateRegionFunction implements Function, 
Declarable {
   // Unlock the distributed lock
   try {
 dml.unlock();
-  } catch (Exception e) {
+  } catch (Exception ignore) {
   }
 }
 

incubator-geode git commit: GEODE-17: fix javadoc warnings

2016-07-22 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop fe281928d -> f230349f8


GEODE-17: fix javadoc warnings


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/f230349f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/f230349f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/f230349f

Branch: refs/heads/develop
Commit: f230349f8b7994e4b2f35b06ebe417e8cf294945
Parents: fe28192
Author: Jinmei Liao 
Authored: Fri Jul 22 09:01:35 2016 -0700
Committer: Jinmei Liao 
Committed: Fri Jul 22 09:01:35 2016 -0700

--
 .../gms/mgr/GMSMembershipManager.java   | 63 +++-
 .../internal/security/GeodeSecurityUtil.java|  4 +-
 .../apache/geode/security/GeodePermission.java  | 13 ++--
 .../security/templates/SamplePostProcessor.java |  2 +-
 4 files changed, 57 insertions(+), 25 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f230349f/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/mgr/GMSMembershipManager.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/mgr/GMSMembershipManager.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/mgr/GMSMembershipManager.java
index e6ca8e1..4ed30a4 100644
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/mgr/GMSMembershipManager.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/mgr/GMSMembershipManager.java
@@ -16,17 +16,63 @@
  */
 package com.gemstone.gemfire.distributed.internal.membership.gms.mgr;
 
-import com.gemstone.gemfire.*;
+import java.io.IOException;
+import java.io.NotSerializableException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+
+import org.apache.logging.log4j.Logger;
+
+import com.gemstone.gemfire.CancelException;
+import com.gemstone.gemfire.ForcedDisconnectException;
+import com.gemstone.gemfire.GemFireConfigException;
+import com.gemstone.gemfire.InternalGemFireError;
+import com.gemstone.gemfire.SystemConnectException;
+import com.gemstone.gemfire.SystemFailure;
+import com.gemstone.gemfire.ToDataException;
 import com.gemstone.gemfire.cache.Cache;
 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.*;
+import com.gemstone.gemfire.distributed.internal.AdminMessageType;
+import com.gemstone.gemfire.distributed.internal.DMStats;
+import com.gemstone.gemfire.distributed.internal.DSClock;
+import com.gemstone.gemfire.distributed.internal.DistributionConfig;
+import com.gemstone.gemfire.distributed.internal.DistributionException;
+import com.gemstone.gemfire.distributed.internal.DistributionManager;
+import com.gemstone.gemfire.distributed.internal.DistributionMessage;
+import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
+import com.gemstone.gemfire.distributed.internal.InternalLocator;
+import com.gemstone.gemfire.distributed.internal.OverflowQueueWithDMStats;
+import com.gemstone.gemfire.distributed.internal.SizeableRunnable;
+import com.gemstone.gemfire.distributed.internal.StartupMessage;
 import com.gemstone.gemfire.distributed.internal.direct.DirectChannel;
 import com.gemstone.gemfire.distributed.internal.direct.DirectChannelListener;
 import com.gemstone.gemfire.distributed.internal.direct.ShunnedMemberException;
-import com.gemstone.gemfire.distributed.internal.membership.*;
+import 
com.gemstone.gemfire.distributed.internal.membership.DistributedMembershipListener;
+import 
com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
+import com.gemstone.gemfire.distributed.internal.membership.MembershipManager;
+import com.gemstone.gemfire.distributed.internal.membership.MembershipTestHook;
+import 

incubator-geode git commit: GEODE-17: update selenium-firefox driver to run uiTest

2016-07-21 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 686db9c07 -> fe281928d


GEODE-17: update selenium-firefox driver to run uiTest


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/fe281928
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/fe281928
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/fe281928

Branch: refs/heads/develop
Commit: fe281928d3c1e1e5ec8f20a6ac4139964e456d93
Parents: 686db9c
Author: Jinmei Liao 
Authored: Thu Jul 21 22:41:20 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Jul 21 22:41:20 2016 -0700

--
 gradle/dependency-versions.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fe281928/gradle/dependency-versions.properties
--
diff --git a/gradle/dependency-versions.properties 
b/gradle/dependency-versions.properties
index 31c181f..aafacef 100644
--- a/gradle/dependency-versions.properties
+++ b/gradle/dependency-versions.properties
@@ -87,7 +87,7 @@ paranamer.version = 2.3
 powermock.version = 1.6.4
 quartz.version = 2.2.1
 scala.version = 2.10.0
-selenium.version=2.53.0
+selenium.version=2.53.1
 shiro.version=1.2.4
 slf4j-api.version = 1.7.7
 snappy-java.version=0.4



incubator-geode git commit: GEODE-1680: Change "list regions" to DATA:READ permissions

2016-07-21 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 50aedb1fc -> 4a9c6ea0b


GEODE-1680: Change "list regions" to DATA:READ permissions

Edited the annotations for listRegions in RegionCommands and updated unit tests.

* this closes #214


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/4a9c6ea0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/4a9c6ea0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/4a9c6ea0

Branch: refs/heads/develop
Commit: 4a9c6ea0b4f096aabe54e3f30ceeb24aa622937b
Parents: 50aedb1
Author: Kevin J. Duling 
Authored: Wed Jul 20 11:50:22 2016 -0700
Committer: Jinmei Liao 
Committed: Thu Jul 21 08:42:35 2016 -0700

--
 .../internal/cli/commands/RegionCommands.java   | 16 
 .../management/internal/security/TestCommand.java   |  2 +-
 2 files changed, 9 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/4a9c6ea0/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/RegionCommands.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/RegionCommands.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/RegionCommands.java
index e2e9e12..9114fc8 100644
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/RegionCommands.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/RegionCommands.java
@@ -24,6 +24,13 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 
+import org.apache.geode.security.GeodePermission.Operation;
+import org.apache.geode.security.GeodePermission.Resource;
+import org.springframework.shell.core.CommandMarker;
+import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
+import org.springframework.shell.core.annotation.CliCommand;
+import org.springframework.shell.core.annotation.CliOption;
+
 import com.gemstone.gemfire.cache.Cache;
 import com.gemstone.gemfire.cache.CacheFactory;
 import com.gemstone.gemfire.cache.Region;
@@ -50,13 +57,6 @@ import 
com.gemstone.gemfire.management.internal.cli.result.TabularResultData;
 import com.gemstone.gemfire.management.internal.cli.shell.Gfsh;
 import com.gemstone.gemfire.management.internal.cli.util.RegionAttributesNames;
 import com.gemstone.gemfire.management.internal.security.ResourceOperation;
-import org.apache.geode.security.GeodePermission.Operation;
-import org.apache.geode.security.GeodePermission.Resource;
-
-import org.springframework.shell.core.CommandMarker;
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
-import org.springframework.shell.core.annotation.CliCommand;
-import org.springframework.shell.core.annotation.CliOption;
 
 /***
  * Class containing implementation of commands based on region:
@@ -77,7 +77,7 @@ public class RegionCommands implements CommandMarker {
 
   @CliCommand(value = { CliStrings.LIST_REGION }, help = 
CliStrings.LIST_REGION__HELP)
   @CliMetaData(shellOnly = false, relatedTopic = CliStrings.TOPIC_GEODE_REGION)
-  @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ)
+  @ResourceOperation(resource = Resource.DATA, operation = Operation.READ)
   public Result listRegion(
   @CliOption(key = { CliStrings.LIST_REGION__GROUP },
   optionContext = ConverterHint.MEMBERGROUP,

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/4a9c6ea0/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/TestCommand.java
--
diff --git 
a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/TestCommand.java
 
b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/TestCommand.java
index d3d14d5..8c8ed40 100644
--- 
a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/TestCommand.java
+++ 
b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/security/TestCommand.java
@@ -191,7 +191,7 @@ public class TestCommand {
 
 //RegionCommands
 createTestCommand("describe region --name=value", clusterRead);
-createTestCommand("list regions", clusterRead);
+createTestCommand("list regions", dataRead);
 
 // StatusCommands
 createTestCommand("status cluster-config-service", clusterRead);



[2/2] incubator-geode git commit: GEODE-1647: Add Integrated Security to Peer Authentication

2016-07-20 Thread jinmeiliao
GEODE-1647: Add Integrated Security to Peer Authentication

* This closes #210


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/16b73564
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/16b73564
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/16b73564

Branch: refs/heads/develop
Commit: 16b73564f638aea652842dd071d01e1e3d5ad204
Parents: 7c2e219
Author: gmeilen 
Authored: Mon Jul 18 13:13:11 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Jul 20 16:04:31 2016 -0700

--
 .../membership/gms/auth/GMSAuthenticator.java   |  79 +-
 .../gms/interfaces/Authenticator.java   |   6 +-
 .../membership/gms/membership/GMSJoinLeave.java |   2 +-
 .../cache/tier/sockets/AcceptorImpl.java|   2 +-
 .../internal/cache/tier/sockets/HandShake.java  |   6 +-
 .../gemfire/internal/i18n/LocalizedStrings.java |   4 +-
 .../internal/security/GeodeSecurityUtil.java|  45 +++---
 .../templates/SampleSecurityManager.java|   5 +
 .../internal/DistributionConfigJUnitTest.java   |   2 +-
 .../gms/auth/GMSAuthenticatorJUnitTest.java |  37 +++--
 .../gms/membership/GMSJoinLeaveJUnitTest.java   |   2 +-
 .../cli/commands/CliCommandTestBase.java|   2 +-
 .../security/AccessControlMBeanJUnitTest.java   |   3 +-
 ...CacheServerMBeanAuthenticationJUnitTest.java |   4 +-
 .../CacheServerMBeanAuthorizationJUnitTest.java |   3 +-
 .../security/CliCommandsSecurityTest.java   |   6 +-
 .../security/DataCommandsSecurityTest.java  |   3 +-
 .../DiskStoreMXBeanSecurityJUnitTest.java   |   3 +-
 .../GatewayReceiverMBeanSecurityTest.java   |   3 +-
 .../GatewaySenderMBeanSecurityTest.java |   3 +-
 .../GeodeSecurityUtilCustomRealmJUnitTest.java  |   4 +-
 .../security/GfshCommandsPostProcessorTest.java |   3 +-
 .../security/GfshCommandsSecurityTest.java  |   3 +-
 .../internal/security/JSONAuthorization.java|  48 --
 .../JsonAuthorizationCacheStartRule.java|   1 +
 .../LockServiceMBeanAuthorizationJUnitTest.java |   3 +-
 .../security/MBeanSecurityJUnitTest.java|   3 +-
 .../ManagerMBeanAuthorizationJUnitTest.java |   3 +-
 .../security/MemberMBeanSecurityJUnitTest.java  |   3 +-
 .../internal/security/MultiUserDUnitTest.java   |   4 +-
 ...ractIntegratedClientAuthDistributedTest.java |   4 +-
 ...edSecurityCacheLifecycleDistributedTest.java |  19 +--
 ...edSecurityCacheLifecycleIntegrationTest.java |  27 +---
 ...tegratedSecurityPeerAuthDistributedTest.java | 146 +++
 .../gemfire/security/JSONAuthorization.java |  54 +++
 .../gemfire/security/SpySecurityManager.java|  43 ++
 .../com/gemstone/gemfire/security/peerAuth.json |  36 +
 .../gemfire/tools/pulse/tests/Server.java   |   2 +-
 38 files changed, 430 insertions(+), 196 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/16b73564/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
index f16a722..cf99ea2 100755
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
@@ -19,19 +19,15 @@ package 
com.gemstone.gemfire.distributed.internal.membership.gms.auth;
 import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
 import static com.gemstone.gemfire.internal.i18n.LocalizedStrings.*;
 
-import java.lang.reflect.Method;
 import java.security.Principal;
 import java.util.Properties;
-import java.util.Set;
 
 import com.gemstone.gemfire.LogWriter;
 import com.gemstone.gemfire.distributed.DistributedMember;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
 import 
com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
 import com.gemstone.gemfire.distributed.internal.membership.NetView;
 import com.gemstone.gemfire.distributed.internal.membership.gms.Services;
 import 
com.gemstone.gemfire.distributed.internal.membership.gms.interfaces.Authenticator;
-import com.gemstone.gemfire.internal.ClassLoadUtil;
 import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
 import com.gemstone.gemfire.internal.logging.InternalLogWriter;
 import com.gemstone.gemfire.internal.security.GeodeSecurityUtil;
@@ -44,15 +40,13 @@ import 

[1/2] incubator-geode git commit: GEODE-1647: add more unit test

2016-07-20 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 7c2e21933 -> 50aedb1fc


GEODE-1647: add more unit test


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/50aedb1f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/50aedb1f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/50aedb1f

Branch: refs/heads/develop
Commit: 50aedb1fc025f10219f2067967eafddab32d02c5
Parents: 16b7356
Author: Jinmei Liao 
Authored: Wed Jul 20 09:42:24 2016 -0700
Committer: Jinmei Liao 
Committed: Wed Jul 20 16:04:31 2016 -0700

--
 .../security/GeodeSecurityUtilTest.java | 57 
 1 file changed, 57 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/50aedb1f/geode-core/src/test/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtilTest.java
--
diff --git 
a/geode-core/src/test/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtilTest.java
 
b/geode-core/src/test/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtilTest.java
index a26f06a..272b04f 100644
--- 
a/geode-core/src/test/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtilTest.java
+++ 
b/geode-core/src/test/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtilTest.java
@@ -17,9 +17,13 @@
 package com.gemstone.gemfire.internal.security;
 
 
+import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
 import static org.assertj.core.api.Java6Assertions.*;
 import static org.junit.Assert.*;
 
+import java.util.Properties;
+
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -28,6 +32,12 @@ import com.gemstone.gemfire.test.junit.categories.UnitTest;
 
 @Category(UnitTest.class)
 public class GeodeSecurityUtilTest {
+  Properties properties;
+  @Before
+  public void before(){
+properties = new Properties();
+GeodeSecurityUtil.initSecurity(properties);
+  }
 
   @Test
   public void testGetObjectFromConstructor(){
@@ -61,6 +71,53 @@ public class GeodeSecurityUtilTest {
   .isInstanceOf(GemFireSecurityException.class);
   }
 
+  @Test
+  public void testInitialSecurityFlags() {
+// initial state of GeodeSecurityUtil
+assertFalse(GeodeSecurityUtil.isClientSecurityRequired());
+assertFalse(GeodeSecurityUtil.isIntegratedSecurity());
+assertFalse(GeodeSecurityUtil.isPeerSecurityRequired());
+  }
+
+  @Test
+  public void testInitWithSecurityManager() {
+properties.setProperty(SECURITY_MANAGER, 
"org.apache.geode.security.templates.SampleSecurityManager");
+GeodeSecurityUtil.initSecurity(properties);
+assertTrue(GeodeSecurityUtil.isClientSecurityRequired());
+assertTrue(GeodeSecurityUtil.isIntegratedSecurity());
+assertTrue(GeodeSecurityUtil.isPeerSecurityRequired());
+  }
+
+  @Test
+  public void testInitWithClientAuthenticator()
+  {
+properties.setProperty(SECURITY_CLIENT_AUTHENTICATOR, "org.abc.test");
+GeodeSecurityUtil.initSecurity(properties);
+assertTrue(GeodeSecurityUtil.isClientSecurityRequired());
+assertFalse(GeodeSecurityUtil.isIntegratedSecurity());
+assertFalse(GeodeSecurityUtil.isPeerSecurityRequired());
+  }
+
+  @Test
+  public void testInitWithPeerAuthenticator()
+  {
+properties.setProperty(SECURITY_PEER_AUTHENTICATOR, "org.abc.test");
+GeodeSecurityUtil.initSecurity(properties);
+assertFalse(GeodeSecurityUtil.isClientSecurityRequired());
+assertFalse(GeodeSecurityUtil.isIntegratedSecurity());
+assertTrue(GeodeSecurityUtil.isPeerSecurityRequired());
+  }
+
+  @Test
+  public void testInitWithShiroAuthenticator()
+  {
+properties.setProperty(SECURITY_SHIRO_INIT, "shiro.ini");
+GeodeSecurityUtil.initSecurity(properties);
+assertTrue(GeodeSecurityUtil.isClientSecurityRequired());
+assertTrue(GeodeSecurityUtil.isIntegratedSecurity());
+assertTrue(GeodeSecurityUtil.isPeerSecurityRequired());
+  }
+
   private static class Factories{
 public static String getString(){
   return new String();



incubator-geode git commit: GEODE-1571: Allow AuthInit to take either a constructor or a static factory method

2016-07-19 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 701909fd4 -> d37e08e69


GEODE-1571: Allow AuthInit to take either a constructor or a static factory 
method

* Allow AuthInit to take either a constructor or a static factory method
* add more javadoc
* simplify security check
* fix test failures


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/d37e08e6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/d37e08e6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/d37e08e6

Branch: refs/heads/develop
Commit: d37e08e69fe3b5920c98bd9198ad37a9edd17ed7
Parents: 701909f
Author: Jinmei Liao 
Authored: Mon Jul 18 11:48:44 2016 -0700
Committer: Jinmei Liao 
Committed: Tue Jul 19 09:50:27 2016 -0700

--
 .../membership/gms/auth/GMSAuthenticator.java   |  24 ++--
 .../cache/tier/sockets/AcceptorImpl.java|   4 +-
 .../internal/cache/tier/sockets/HandShake.java  |  26 ++---
 .../internal/security/GeodeSecurityUtil.java| 117 +--
 .../security/shiro/CustomAuthRealm.java |   6 +-
 .../gemfire/security/AuthInitialize.java|  12 +-
 .../apache/geode/security/GeodePermission.java  |  21 
 .../apache/geode/security/PostProcessor.java|   2 +-
 .../security/templates/SamplePostProcessor.java |  16 ++-
 .../gms/auth/GMSAuthenticatorJUnitTest.java |  46 
 .../security/GeodeSecurityUtilTest.java |   4 +-
 .../security/ClientAuthenticationTestCase.java  |   4 +-
 .../gemfire/security/SecurityTestUtils.java |   9 ++
 13 files changed, 191 insertions(+), 100 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/d37e08e6/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
index b82fdb1..f16a722 100755
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
@@ -16,6 +16,14 @@
  */
 package com.gemstone.gemfire.distributed.internal.membership.gms.auth;
 
+import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
+import static com.gemstone.gemfire.internal.i18n.LocalizedStrings.*;
+
+import java.lang.reflect.Method;
+import java.security.Principal;
+import java.util.Properties;
+import java.util.Set;
+
 import com.gemstone.gemfire.LogWriter;
 import com.gemstone.gemfire.distributed.DistributedMember;
 import com.gemstone.gemfire.distributed.internal.DistributionConfig;
@@ -26,19 +34,12 @@ import 
com.gemstone.gemfire.distributed.internal.membership.gms.interfaces.Authe
 import com.gemstone.gemfire.internal.ClassLoadUtil;
 import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
 import com.gemstone.gemfire.internal.logging.InternalLogWriter;
+import com.gemstone.gemfire.internal.security.GeodeSecurityUtil;
 import com.gemstone.gemfire.security.AuthInitialize;
 import com.gemstone.gemfire.security.AuthenticationFailedException;
 import com.gemstone.gemfire.security.AuthenticationRequiredException;
 import com.gemstone.gemfire.security.GemFireSecurityException;
 
-import java.lang.reflect.Method;
-import java.security.Principal;
-import java.util.Properties;
-import java.util.Set;
-
-import static com.gemstone.gemfire.internal.i18n.LocalizedStrings.*;
-import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
-
 // static messages
 
 public class GMSAuthenticator implements Authenticator {
@@ -195,12 +196,7 @@ public class GMSAuthenticator implements Authenticator {
 
 try {
   if (authMethod != null && authMethod.length() > 0) {
-Method getter = ClassLoadUtil.methodFromName(authMethod);
-AuthInitialize auth = (AuthInitialize)getter.invoke(null, (Object[]) 
null);
-if (auth == null) {
-  throw new 
AuthenticationRequiredException(AUTH_FAILED_TO_ACQUIRE_AUTHINITIALIZE_INSTANCE.toLocalizedString(authMethod));
-}
-
+AuthInitialize auth = GeodeSecurityUtil.getObjectOfType(authMethod, 
AuthInitialize.class);
 try {
   LogWriter logWriter = services.getLogWriter();
   LogWriter securityLogWriter = services.getSecurityLogWriter();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/d37e08e6/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/AcceptorImpl.java

incubator-geode git commit: GEODE-746: When starting a locator using --bind-address, gfsh prints incorrect connect message

2016-07-18 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 582423cb5 -> 3473229fc


GEODE-746: When starting a locator using --bind-address, gfsh prints incorrect 
connect message

* This closes #208


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/3473229f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/3473229f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/3473229f

Branch: refs/heads/develop
Commit: 3473229fc3fb1337fb3f85d419f8bddb04a2e9b3
Parents: 582423c
Author: Kevin J. Duling 
Authored: Thu Jul 14 15:48:27 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Jul 18 14:25:03 2016 -0700

--
 .../cli/commands/LauncherLifecycleCommands.java | 21 ++--
 1 file changed, 15 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3473229f/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommands.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommands.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommands.java
index 261163a..2926822 100755
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommands.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommands.java
@@ -45,6 +45,7 @@ import java.util.Stack;
 import java.util.TreeSet;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
+
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 import javax.management.Query;
@@ -52,6 +53,10 @@ import javax.management.QueryExp;
 import javax.net.ssl.SSLException;
 import javax.net.ssl.SSLHandshakeException;
 
+import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
+import org.springframework.shell.core.annotation.CliCommand;
+import org.springframework.shell.core.annotation.CliOption;
+
 import com.gemstone.gemfire.GemFireException;
 import com.gemstone.gemfire.SystemFailure;
 import com.gemstone.gemfire.cache.server.CacheServer;
@@ -112,10 +117,6 @@ import 
com.gemstone.gemfire.management.internal.configuration.messages.SharedCon
 import 
com.gemstone.gemfire.management.internal.configuration.messages.SharedConfigurationStatusResponse;
 import com.gemstone.gemfire.security.AuthenticationFailedException;
 
-import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
-import org.springframework.shell.core.annotation.CliCommand;
-import org.springframework.shell.core.annotation.CliOption;
-
 /**
  * The LauncherLifecycleCommands class encapsulates all GemFire launcher 
commands for GemFire tools (like starting
  * GemFire Monitor (GFMon) and Visual Statistics Display (VSD)) as well 
external tools (like jconsole).
@@ -428,7 +429,14 @@ public class LauncherLifecycleCommands extends 
AbstractCommandsSupport {
   } else {
 infoResultData.addLine(locatorState.toString());
 
-String locatorHostName = 
StringUtils.defaultIfBlank(locatorLauncher.getHostnameForClients(), 
getLocalHost());
+String locatorHostName;
+InetAddress bindAddr = locatorLauncher.getBindAddress();
+if (bindAddr != null){
+  locatorHostName = bindAddr.getCanonicalHostName();
+} else {
+  locatorHostName = 
StringUtils.defaultIfBlank(locatorLauncher.getHostnameForClients(), 
getLocalHost());
+}
+
 int locatorPort = Integer.parseInt(locatorState.getPort());
 
 // AUTO-CONNECT
@@ -569,7 +577,7 @@ public class LauncherLifecycleCommands extends 
AbstractCommandsSupport {
 getGfsh().setOperationInvoker(new 
JmxOperationInvoker(memberEndpoint.getHost(), memberEndpoint.getPort(),
 null, null, configurationProperties, null));
 
-String shellAndLogMessage = 
CliStrings.format(CliStrings.CONNECT__MSG__SUCCESS, 
memberEndpoint.toString(false));
+String shellAndLogMessage = 
CliStrings.format(CliStrings.CONNECT__MSG__SUCCESS, "JMX Manager " + 
memberEndpoint.toString(false));
 
 infoResultData.addLine("\n");
 infoResultData.addLine(shellAndLogMessage);
@@ -624,6 +632,7 @@ public class LauncherLifecycleCommands extends 
AbstractCommandsSupport {
   final boolean jmxManagerAuthEnabled,
   final boolean jmxManagerSslEnabled,
   final InfoResultData infoResultData) {
+
 infoResultData.addLine("\n");
 
infoResultData.addLine(CliStrings.format(CliStrings.START_LOCATOR__USE__0__TO__CONNECT,

incubator-geode git commit: GEODE-1571: more revert.

2016-07-18 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop b830c2774 -> 582423cb5


GEODE-1571: more revert.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/582423cb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/582423cb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/582423cb

Branch: refs/heads/develop
Commit: 582423cb500ed75fdb38003cd07de120ee0e9eea
Parents: b830c27
Author: Jinmei Liao 
Authored: Mon Jul 18 13:05:21 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Jul 18 13:05:21 2016 -0700

--
 .../gemstone/gemfire/internal/security/GeodeSecurityUtilTest.java  | 2 ++
 1 file changed, 2 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/582423cb/geode-core/src/test/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtilTest.java
--
diff --git 
a/geode-core/src/test/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtilTest.java
 
b/geode-core/src/test/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtilTest.java
index 6c1f1f2..5e19a97 100644
--- 
a/geode-core/src/test/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtilTest.java
+++ 
b/geode-core/src/test/java/com/gemstone/gemfire/internal/security/GeodeSecurityUtilTest.java
@@ -20,6 +20,7 @@ package com.gemstone.gemfire.internal.security;
 import static org.assertj.core.api.Java6Assertions.*;
 import static org.junit.Assert.assertNotNull;
 
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -48,6 +49,7 @@ public class GeodeSecurityUtilTest {
   }
 
   @Test
+  @Ignore
   public void testGetObjectFromFactoryMethod(){
 String string = 
GeodeSecurityUtil.getObjectOfType(Factories.class.getName()+".getString", 
String.class);
 assertNotNull(string);



[incubator-geode] Git Push Summary

2016-07-18 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/feature/GEODE-1571 [deleted] 6f6b78a21


incubator-geode git commit: GEODE-1571: revert previous two changes

2016-07-18 Thread jinmeiliao
Repository: incubator-geode
Updated Branches:
  refs/heads/develop 5cbaa7d19 -> f4fdfa915


GEODE-1571: revert previous two changes


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/f4fdfa91
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/f4fdfa91
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/f4fdfa91

Branch: refs/heads/develop
Commit: f4fdfa915198d91beff3ce44e939aa2f943e971b
Parents: 5cbaa7d
Author: Jinmei Liao 
Authored: Mon Jul 18 11:20:45 2016 -0700
Committer: Jinmei Liao 
Committed: Mon Jul 18 11:21:54 2016 -0700

--
 .../membership/gms/auth/GMSAuthenticator.java   |  24 ++--
 .../cache/tier/sockets/AcceptorImpl.java|   4 +-
 .../internal/cache/tier/sockets/HandShake.java  |  26 +++--
 .../internal/security/GeodeSecurityUtil.java| 111 ++-
 .../security/shiro/CustomAuthRealm.java |   6 +-
 .../gemfire/security/AuthInitialize.java|  12 +-
 .../apache/geode/security/GeodePermission.java  |  21 
 .../apache/geode/security/PostProcessor.java|   2 +-
 .../security/templates/SamplePostProcessor.java |  16 +--
 9 files changed, 69 insertions(+), 153 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f4fdfa91/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
index f16a722..b82fdb1 100755
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/auth/GMSAuthenticator.java
@@ -16,14 +16,6 @@
  */
 package com.gemstone.gemfire.distributed.internal.membership.gms.auth;
 
-import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
-import static com.gemstone.gemfire.internal.i18n.LocalizedStrings.*;
-
-import java.lang.reflect.Method;
-import java.security.Principal;
-import java.util.Properties;
-import java.util.Set;
-
 import com.gemstone.gemfire.LogWriter;
 import com.gemstone.gemfire.distributed.DistributedMember;
 import com.gemstone.gemfire.distributed.internal.DistributionConfig;
@@ -34,12 +26,19 @@ import 
com.gemstone.gemfire.distributed.internal.membership.gms.interfaces.Authe
 import com.gemstone.gemfire.internal.ClassLoadUtil;
 import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
 import com.gemstone.gemfire.internal.logging.InternalLogWriter;
-import com.gemstone.gemfire.internal.security.GeodeSecurityUtil;
 import com.gemstone.gemfire.security.AuthInitialize;
 import com.gemstone.gemfire.security.AuthenticationFailedException;
 import com.gemstone.gemfire.security.AuthenticationRequiredException;
 import com.gemstone.gemfire.security.GemFireSecurityException;
 
+import java.lang.reflect.Method;
+import java.security.Principal;
+import java.util.Properties;
+import java.util.Set;
+
+import static com.gemstone.gemfire.internal.i18n.LocalizedStrings.*;
+import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
+
 // static messages
 
 public class GMSAuthenticator implements Authenticator {
@@ -196,7 +195,12 @@ public class GMSAuthenticator implements Authenticator {
 
 try {
   if (authMethod != null && authMethod.length() > 0) {
-AuthInitialize auth = GeodeSecurityUtil.getObjectOfType(authMethod, 
AuthInitialize.class);
+Method getter = ClassLoadUtil.methodFromName(authMethod);
+AuthInitialize auth = (AuthInitialize)getter.invoke(null, (Object[]) 
null);
+if (auth == null) {
+  throw new 
AuthenticationRequiredException(AUTH_FAILED_TO_ACQUIRE_AUTHINITIALIZE_INSTANCE.toLocalizedString(authMethod));
+}
+
 try {
   LogWriter logWriter = services.getLogWriter();
   LogWriter securityLogWriter = services.getSecurityLogWriter();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f4fdfa91/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/AcceptorImpl.java
--
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/AcceptorImpl.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/AcceptorImpl.java
index 43f90d5..e93faf8 100644
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/AcceptorImpl.java
+++ 

  1   2   3   4   5   6   7   >