This is an automated email from the ASF dual-hosted git repository.

domgarguilo pushed a commit to branch replaceAuthorizer
in repository https://gitbox.apache.org/repos/asf/accumulo-access.git

commit e5c63a59813160fc6e3b316b7624a3fea1590810
Author: Dom G <domgargu...@apache.org>
AuthorDate: Tue Feb 20 15:31:14 2024 -0500

    Replace Authorizer with Predicate<String>
---
 .../java/org/apache/accumulo/access/AccessEvaluator.java | 16 ++++------------
 .../org/apache/accumulo/access/AccessEvaluatorImpl.java  |  6 +++---
 .../org/apache/accumulo/access/AccessEvaluatorTest.java  |  5 ++---
 3 files changed, 9 insertions(+), 18 deletions(-)

diff --git a/src/main/java/org/apache/accumulo/access/AccessEvaluator.java 
b/src/main/java/org/apache/accumulo/access/AccessEvaluator.java
index 5b86208..bc6ef3d 100644
--- a/src/main/java/org/apache/accumulo/access/AccessEvaluator.java
+++ b/src/main/java/org/apache/accumulo/access/AccessEvaluator.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.access;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.function.Predicate;
 
 /**
  * <p>
@@ -91,12 +92,12 @@ public interface AccessEvaluator {
   }
 
   /**
-   * Creates an AccessEvaluator from an Authorizer object
+   * Creates an AccessEvaluator from a Predicate&lt;String&gt;
    *
-   * @param authorizer authorizer to use in the AccessEvaluator
+   * @param authorizer Predicate&lt;String&gt; to use in the AccessEvaluator
    * @return AccessEvaluator object
    */
-  static AccessEvaluator of(Authorizer authorizer) {
+  static AccessEvaluator of(Predicate<String> authorizer) {
     return new AccessEvaluatorImpl(authorizer);
   }
 
@@ -162,13 +163,4 @@ public interface AccessEvaluator {
     return new 
AccessEvaluatorImpl(AccessEvaluatorImpl.convert(authorizations));
   }
 
-  /**
-   * An interface that is used to check if an authorization seen in an access 
expression is
-   * authorized.
-   *
-   * @since 1.0.0
-   */
-  interface Authorizer {
-    boolean isAuthorized(String auth);
-  }
 }
diff --git a/src/main/java/org/apache/accumulo/access/AccessEvaluatorImpl.java 
b/src/main/java/org/apache/accumulo/access/AccessEvaluatorImpl.java
index 66adb96..e744631 100644
--- a/src/main/java/org/apache/accumulo/access/AccessEvaluatorImpl.java
+++ b/src/main/java/org/apache/accumulo/access/AccessEvaluatorImpl.java
@@ -74,10 +74,10 @@ final class AccessEvaluatorImpl implements AccessEvaluator {
   }
 
   /**
-   * Create an AccessEvaluatorImpl using an Authorizer object
+   * Create an AccessEvaluatorImpl using an Predicate&lt;String&gt; object
    */
-  AccessEvaluatorImpl(Authorizer authorizationChecker) {
-    this.authorizedPredicates = List.of(auth -> 
authorizationChecker.isAuthorized(unescape(auth)));
+  AccessEvaluatorImpl(Predicate<String> authorizationChecker) {
+    this.authorizedPredicates = List.of(auth -> 
authorizationChecker.test(unescape(auth)));
   }
 
   /**
diff --git a/src/test/java/org/apache/accumulo/access/AccessEvaluatorTest.java 
b/src/test/java/org/apache/accumulo/access/AccessEvaluatorTest.java
index e7d025f..e821a17 100644
--- a/src/test/java/org/apache/accumulo/access/AccessEvaluatorTest.java
+++ b/src/test/java/org/apache/accumulo/access/AccessEvaluatorTest.java
@@ -28,9 +28,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import java.io.IOException;
 import java.lang.reflect.Type;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
-import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -90,8 +90,7 @@ public class AccessEvaluatorTest {
         evaluator = AccessEvaluator.of(testSet.auths[0]);
         runTestCases(testSet, evaluator);
 
-        Set<String> auths = 
Stream.of(testSet.auths[0]).collect(Collectors.toSet());
-        evaluator = AccessEvaluator.of(auths::contains);
+        evaluator = 
AccessEvaluator.of(Arrays.asList(testSet.auths[0])::contains);
         runTestCases(testSet, evaluator);
       } else {
         var authSets =

Reply via email to