Apache Accumulo Access Control Library

Clone this repo:
  1. 715613d Avoids looping when evaluating single set of authorizations (#71) by Keith Turner · 7 days ago main
  2. 4626291 optimize validiation of empty expression (#76) by Keith Turner · 7 days ago
  3. 4aa573a Add javadoc about AccessExpression normalization (#77) by Dave Marion · 7 days ago
  4. 3dc1839 Added profile to run benchmark (#75) by Dave Marion · 7 days ago
  5. f5c5785 Renamed IllegalAccessExpressionException to InvalidAccessExpressionException (#74) by Dave Marion · 7 days 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 Example

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.

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"