This is an automated email from the ASF dual-hosted git repository. zhouxj pushed a commit to branch feature/GEODE-6930 in repository https://gitbox.apache.org/repos/asf/geode.git
commit 595fe9dc4a254912cbb16f505d6ed338837d446d Author: zhouxh <[email protected]> AuthorDate: Fri Jun 28 17:32:28 2019 -0700 GEODE-6930: Need to specify required resource permission DATA_READ for lucene user functions. --- .../internal/distributed/IndexingInProgressFunction.java | 10 ++++++++++ .../cache/lucene/internal/distributed/LuceneQueryFunction.java | 8 ++++++++ .../lucene/internal/distributed/WaitUntilFlushedFunction.java | 9 +++++++++ .../cache/lucene/internal/results/LuceneGetPageFunction.java | 9 +++++++++ 4 files changed, 36 insertions(+) diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/IndexingInProgressFunction.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/IndexingInProgressFunction.java index 934e775..33f1973 100644 --- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/IndexingInProgressFunction.java +++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/IndexingInProgressFunction.java @@ -15,6 +15,9 @@ package org.apache.geode.cache.lucene.internal.distributed; +import java.util.Collection; +import java.util.Collections; + import org.apache.geode.cache.Cache; import org.apache.geode.cache.Region; import org.apache.geode.cache.execute.FunctionContext; @@ -24,6 +27,8 @@ import org.apache.geode.cache.lucene.LuceneIndex; import org.apache.geode.cache.lucene.LuceneService; import org.apache.geode.cache.lucene.LuceneServiceProvider; import org.apache.geode.internal.cache.execute.InternalFunction; +import org.apache.geode.management.internal.security.ResourcePermissions; +import org.apache.geode.security.ResourcePermission; public class IndexingInProgressFunction implements InternalFunction<Object> { @@ -60,4 +65,9 @@ public class IndexingInProgressFunction implements InternalFunction<Object> { public boolean optimizeForWrite() { return true; } + + @Override + public Collection<ResourcePermission> getRequiredPermissions(String regionName) { + return Collections.singletonList(ResourcePermissions.DATA_READ); + } } diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunction.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunction.java index 33ae0c3..caa0772 100644 --- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunction.java +++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunction.java @@ -18,6 +18,7 @@ package org.apache.geode.cache.lucene.internal.distributed; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Set; import org.apache.logging.log4j.Logger; @@ -51,6 +52,8 @@ import org.apache.geode.internal.cache.execute.InternalFunction; import org.apache.geode.internal.cache.execute.InternalFunctionInvocationTargetException; import org.apache.geode.internal.cache.execute.PartitionedRegionFunctionResultSender; import org.apache.geode.internal.logging.LogService; +import org.apache.geode.management.internal.security.ResourcePermissions; +import org.apache.geode.security.ResourcePermission; /** * {@link LuceneQueryFunction} coordinates text search on a member. It receives text search query @@ -227,4 +230,9 @@ public class LuceneQueryFunction implements InternalFunction<LuceneFunctionConte public boolean optimizeForWrite() { return true; } + + @Override + public Collection<ResourcePermission> getRequiredPermissions(String regionName) { + return Collections.singletonList(ResourcePermissions.DATA_READ); + } } diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/WaitUntilFlushedFunction.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/WaitUntilFlushedFunction.java index 0e84ad3..ce5603a 100644 --- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/WaitUntilFlushedFunction.java +++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/WaitUntilFlushedFunction.java @@ -15,6 +15,8 @@ package org.apache.geode.cache.lucene.internal.distributed; +import java.util.Collection; +import java.util.Collections; import java.util.concurrent.TimeUnit; import org.apache.geode.cache.Cache; @@ -25,6 +27,8 @@ import org.apache.geode.cache.execute.RegionFunctionContext; import org.apache.geode.cache.execute.ResultSender; import org.apache.geode.cache.lucene.internal.LuceneServiceImpl; import org.apache.geode.internal.cache.execute.InternalFunction; +import org.apache.geode.management.internal.security.ResourcePermissions; +import org.apache.geode.security.ResourcePermission; /** * {@link WaitUntilFlushedFunction} will check all the members with index to wait until the events @@ -75,4 +79,9 @@ public class WaitUntilFlushedFunction implements InternalFunction<Object> { public boolean optimizeForWrite() { return true; } + + @Override + public Collection<ResourcePermission> getRequiredPermissions(String regionName) { + return Collections.singletonList(ResourcePermissions.DATA_READ); + } } diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/results/LuceneGetPageFunction.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/results/LuceneGetPageFunction.java index 3ddbff3..62423e7 100644 --- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/results/LuceneGetPageFunction.java +++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/results/LuceneGetPageFunction.java @@ -15,6 +15,8 @@ package org.apache.geode.cache.lucene.internal.results; +import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Set; @@ -31,6 +33,8 @@ import org.apache.geode.internal.cache.Token; import org.apache.geode.internal.cache.execute.InternalFunction; import org.apache.geode.internal.cache.execute.InternalFunctionInvocationTargetException; import org.apache.geode.internal.logging.LogService; +import org.apache.geode.management.internal.security.ResourcePermissions; +import org.apache.geode.security.ResourcePermission; /** * {@link LuceneGetPageFunction} Returns the values of entries back to the user This behaves @@ -86,4 +90,9 @@ public class LuceneGetPageFunction implements InternalFunction<Object> { public boolean optimizeForWrite() { return false; } + + @Override + public Collection<ResourcePermission> getRequiredPermissions(String regionName) { + return Collections.singletonList(ResourcePermissions.DATA_READ); + } }
