Apache Accumulo Access Control Library

Clone this repo:
  1. 6112180 Revert "Changes exception prefix from Invalid to Illegal (#85)" by Christopher Tubbs · 9 weeks ago main
  2. a3387df Removed double check locking in AccessExpressionImpl.parse (#86) by Dave Marion · 9 weeks ago
  3. a371ab1 Changes exception prefix from Invalid to Illegal (#85) by Keith Turner · 9 weeks ago
  4. 2f68281 memoizes creating a parse tree (#84) by Keith Turner · 9 weeks ago
  5. 2b96c53 Merge pull request #83 from keith-turner/parse-tree by Daniel Roberts · 2 months ago

Accumulo Access Library

Java library that provides the same functionality, semantics, and syntax as the Apache Accumulo ColumnVisibility and VisibilityEvaluator classes. This functionality is provided in a standalone java library that has no dependencies (for example no Hadoop, Zookeeper, Thrift, etc dependencies).

For a conceptual overview of what an access expression is, see the specification document. See the Getting Started section for an example of how to use this java library.

Public API

The following types constitute the public API of this library. All other types are package private and are not part of the public API.

Getting Started

Add the library to your CLASSPATH. For Maven, use:

<dependencies>
  <dependency>
    <groupId>org.apache.accumulo</groupId>
    <artifactId>accumulo-access</artifactId>
    <version>${version.accumulo-access}</version>
  </dependency>
</dependencies>

Running the Examples

To run AccessExample

mvn clean package
CLASSPATH=$(ls target/accumulo-access-*.jar) java src/test/java/example/AccessExample.java
CLASSPATH=$(ls target/accumulo-access-*.jar) java src/test/java/example/AccessExample.java RED BLUE

Note that data6 is always returned, because it has no access expression. And remember, authorizations are case-sensitive.

To run ParseExamples

mvn clean package
CLASSPATH=$(ls target/accumulo-access-*.jar) java src/test/java/example/ParseExamples.java

For an ANTLRv4 example, see antlr-example integration test's README.

Running the Benchmark

This project includes a JMH Benchmark. To run it:

mvn clean verify -Pbenchmark