Apache Accumulo Access Control Library

Clone this repo:
  1. 33be659 Modified Authorizations.of to only accept a Set (#68) by Dave Marion · 8 weeks ago main
  2. 2da31d3 Merge pull request #62 from ddanielr/Remove-contrib-ref by Daniel Roberts · 3 months ago
  3. e0abc5d Merge branch '1.0.0-beta-rc4-next' by Dave Marion · 3 months ago
  4. 202a51c Added post-vote-checklist issue templates (#44) by Dave Marion · 3 months ago
  5. 374a81e Update README to remove `contrib` project ref by Daniel Roberts · 3 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 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 package
mvn exec:exec -Dexec.executable="java" -Dexec.classpathScope=test -Dexec.args="-classpath %classpath org.apache.accumulo.access.AccessExpressionBenchmark"