You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ji...@apache.org on 2016/07/08 15:52:03 UTC

[43/50] [abbrv] incubator-geode git commit: GEODE-1571: fix precheckin failures

GEODE-1571: fix precheckin 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/db456f64
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/db456f64
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/db456f64

Branch: refs/heads/develop
Commit: db456f64621420a69635869204739e2618ad5e6d
Parents: e4d79df
Author: Jinmei Liao <ji...@pivotal.io>
Authored: Thu Jul 7 10:55:22 2016 -0700
Committer: Jinmei Liao <ji...@pivotal.io>
Committed: Thu Jul 7 11:11:11 2016 -0700

----------------------------------------------------------------------
 .../cache/tier/sockets/BaseCommandQuery.java    | 34 +++++++++-----------
 .../cache/tier/sockets/CacheClientProxy.java    | 25 +++++++-------
 .../internal/cache/tier/sockets/HandShake.java  |  3 +-
 .../internal/security/GeodeSecurityUtil.java    | 11 +++++++
 .../cli/functions/DataCommandFunction.java      | 21 ++++++------
 ...tedClientContainsKeyAuthDistributedTest.java |  1 -
 ...urityNoShowValue1PostProcessorDUnitTest.java |  2 +-
 7 files changed, 53 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/db456f64/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 3f79873..0e32fb8 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
@@ -158,26 +158,24 @@ public abstract class BaseCommandQuery extends BaseCommand {
         SelectResults selectResults = (SelectResults)result;
 
         // post process, iterate through the result for post processing
-        List list = selectResults.asList();
-        for(Iterator<Object> valItr = list.iterator(); valItr.hasNext();){
-          Object value = valItr.next();
-          Object newValue = value;
-          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);
-              if(cqNewValue!=null){
+        if(GeodeSecurityUtil.needPostProcess()) {
+          List list = selectResults.asList();
+          for (Iterator<Object> 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 {
-            newValue = GeodeSecurityUtil.postProcess(null, null, value);
-            if(!value.equals(newValue)){
-              selectResults.remove(value);
-              // only add the newValue back if it's not null
-              if(newValue!=null){
+            } else {
+              Object newValue = GeodeSecurityUtil.postProcess(null, null, value);
+              if (!value.equals(newValue)) {
+                selectResults.remove(value);
                 selectResults.add(newValue);
               }
             }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/db456f64/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 1609c39..2553458 100755
--- 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
@@ -1676,20 +1676,21 @@ public class CacheClientProxy implements ClientSession {
     this._statistics.incMessagesReceived();
 
     // post process
-    Object oldValue = clientMessage.getValue();
-    if(oldValue instanceof byte[]){
-      Object newValue = GeodeSecurityUtil.postProcess(clientMessage.getRegionName(), clientMessage.getKeyOfInterest(),
-          EntryEventImpl.deserialize((byte[])oldValue));
-      try {
-        clientMessage.setLatestValue(BlobHelper.serializeToBlob(newValue));
-      } catch (IOException e) {
-        throw new GemFireIOException("Exception serializing entry value", e);
+    if(GeodeSecurityUtil.needPostProcess()) {
+      Object oldValue = clientMessage.getValue();
+      if (clientMessage.valueIsObject()) {
+        Object newValue = GeodeSecurityUtil.postProcess(clientMessage.getRegionName(), clientMessage.getKeyOfInterest(), EntryEventImpl
+          .deserialize((byte[]) oldValue));
+        try {
+          clientMessage.setLatestValue(BlobHelper.serializeToBlob(newValue));
+        } catch (IOException e) {
+          throw new GemFireIOException("Exception serializing entry value", e);
+        }
+      } else {
+        Object newValue = GeodeSecurityUtil.postProcess(clientMessage.getRegionName(), clientMessage.getKeyOfInterest(), oldValue);
+        clientMessage.setLatestValue(newValue);
       }
     }
-    else{
-      Object newValue = GeodeSecurityUtil.postProcess(clientMessage.getRegionName(), clientMessage.getKeyOfInterest(), oldValue);
-      clientMessage.setLatestValue(newValue);
-    }
 
     if (clientMessage.needsNoAuthorizationCheck() || postDeliverAuthCheckPassed(clientMessage)) {
       // If dispatcher is getting initialized, add the event to temporary queue.

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/db456f64/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 5bceff9..cf69d0c 100755
--- 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
@@ -1157,12 +1157,11 @@ public class HandShake implements ClientHandShake
     dhSKAlgo = config.getSecurityClientDHAlgo();
     dhPrivateKey = null;
     dhPublicKey = null;
-    String authenticator = config.getSecurityClientAuthenticator();
     // Initialize the keys when either the host is a client that has
     // non-blank setting for DH symmetric algo, or this is a server
     // that has authenticator defined.
     if ((dhSKAlgo != null && dhSKAlgo.length() > 0)
-        || (authenticator != null && authenticator.length() > 0)) {
+        || GeodeSecurityUtil.isSecurityRequired(config.getSecurityProps())) {
       KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DH");
       DHParameterSpec dhSpec = new DHParameterSpec(dhP, dhG, dhL);
       keyGen.initialize(dhSpec);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/db456f64/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 ff32f92..0661602 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
@@ -348,6 +348,16 @@ public class GeodeSecurityUtil {
     return;
   }
 
+  /**
+   * postProcess call already has this logic built in, you don't need to call this everytime you call postProcess.
+   * But if your postProcess is pretty involved with preparations and you need to bypass it entirely, call this first.
+   * @return
+   */
+  public static boolean needPostProcess(){
+    Subject subject = getSubject();
+    return (subject != null && postProcessor != null);
+  }
+
   public static Object postProcess(String regionPath, Object key, Object result){
     if(postProcessor == null)
       return result;
@@ -361,6 +371,7 @@ public class GeodeSecurityUtil {
     return postProcessor.processRegionValue((Principal)subject.getPrincipal(), regionName, key,  result);
   }
 
+
   public static Object getObject(String factoryName) {
     if (StringUtils.isBlank(factoryName)) {
       return null;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/db456f64/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/functions/DataCommandFunction.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/functions/DataCommandFunction.java b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/functions/DataCommandFunction.java
index 854643e..ed119a5 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/functions/DataCommandFunction.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/management/internal/cli/functions/DataCommandFunction.java
@@ -935,16 +935,17 @@ public class DataCommandFunction extends FunctionAdapter implements  InternalEnt
             dataResult.setInputQuery(query);
 
             // post process, iterate through the result for post processing
-            List<SelectResultRow> rows = dataResult.getSelectResult();
-            for(Iterator<SelectResultRow> itr = rows.iterator(); itr.hasNext();){
-              SelectResultRow row = itr.next();
-              Object newValue = GeodeSecurityUtil.postProcess(null, null, row.getValue());
-              // user is not supposed to see this row
-              if(newValue==null){
-                itr.remove();
-              }
-              else{
-                row.setValue(newValue);
+            if(GeodeSecurityUtil.needPostProcess()) {
+              List<SelectResultRow> rows = dataResult.getSelectResult();
+              for (Iterator<SelectResultRow> itr = rows.iterator(); itr.hasNext(); ) {
+                SelectResultRow row = itr.next();
+                Object newValue = GeodeSecurityUtil.postProcess(null, null, row.getValue());
+                // user is not supposed to see this row
+                if (newValue == null) {
+                  itr.remove();
+                } else {
+                  row.setValue(newValue);
+                }
               }
             }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/db456f64/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientContainsKeyAuthDistributedTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientContainsKeyAuthDistributedTest.java b/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientContainsKeyAuthDistributedTest.java
index f5bbcd4..7aa958e 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientContainsKeyAuthDistributedTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedClientContainsKeyAuthDistributedTest.java
@@ -44,7 +44,6 @@ public class IntegratedClientContainsKeyAuthDistributedTest extends AbstractInte
       final Region region = cache.getRegion(REGION_NAME);
       region.containsKeyOnServer("key3");
       assertTrue(region.containsKeyOnServer("key1"));
-
     });
 
     ai1.join();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/db456f64/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedSecurityNoShowValue1PostProcessorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedSecurityNoShowValue1PostProcessorDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedSecurityNoShowValue1PostProcessorDUnitTest.java
index 0599e57..d6ac3aa 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedSecurityNoShowValue1PostProcessorDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/security/IntegratedSecurityNoShowValue1PostProcessorDUnitTest.java
@@ -66,7 +66,7 @@ public class IntegratedSecurityNoShowValue1PostProcessorDUnitTest extends Abstra
       String query = "select * from /AuthRegion";
       SelectResults result = region.query(query);
       System.out.println("query result: "+result);
-      assertEquals(4, result.size());
+      assertEquals(5, result.size());
       assertTrue(result.contains("value0"));
       assertFalse(result.contains("value1"));
       assertTrue(result.contains("value2"));