#access-control #expressions #parser #api #evaluating #authorization #accumulo

accumulo-access

Rust API for parsing and evaluating Accumulo Access Expressions

8 releases

0.1.9 May 30, 2024
0.1.8 May 30, 2024
0.1.4 Jan 9, 2024

#175 in Authentication


Used in accumulo_access_pg

MIT/Apache

42KB
785 lines

Accumulo Access for Rust

Introduction

This crate provides a Rust API for parsing and evaluating Accumulo Access Expressions, based on the AccessExpression specification.

Quickstart

Add the following to your Cargo.toml:

[dependencies]
accumulo-access = "0.1"

Example

use accumulo_access::check_authorization;

fn main() {
    let expr = "A&B&(C|D)";
    let auths = vec!["A", "B", "C"];
    let result = check_authorization(expr, auths);
    assert!(result.is_ok());
}

Functionality

  • Using the equivalent method in caching::check_authorization will memoize/cache the result based on the input (expression+authorization tuple).
  • Possibility to return parsed expression as an expression tree; either as a serde JSON Value-based tree, or a JSON string representation.

Known usages

Maintainers

License

Licensed under both the the Apache License, Version 2.0 (LICENSE_APACHE or http://www.apache.org/licenses/LICENSE-2.0) and the MIT License LICENSE_MIT.

Dependencies

~0.6–1.7MB
~36K SLoC