DynamoDB Adapter is the Amazon DynamoDB adapter for jCasbin, which provides interfaces for loading policies from DynamoDB and saving policies to it.
This adapter has been modernized to use AWS SDK v2 and supports zero-dependency testing with Testcontainers + LocalStack.
- ✅ AWS SDK v2: Uses the modern AWS SDK v2 for DynamoDB operations
- ✅ Zero-dependency Testing: Integration tests run with Testcontainers + LocalStack (no AWS credentials required)
- ✅ Java 8+: Compatible with Java 8 and higher
Currently we support the following interfaces:
loadPolicysavePolicy
<dependency>
<groupId>org.casbin</groupId>
<artifactId>dynamodb-adapter</artifactId>
<version>0.0.1</version>
</dependency>package com.company.example;
import org.casbin.jcasbin.main.Enforcer;
import org.casbin.adapter.DynamoDBAdapter;
public class Example {
public static void main(String[] args) {
Enforcer e = new Enforcer("examples/rbac_model.conf", "examples/rbac_policy.csv");
String endpoint = "http://localhost:8000";
String region = "cn-north-1";
DynamoDBAdapter a = new DynamoDBAdapter(endpoint, region);
// Create table (only needed once)
a.createTable();
// Save policy to DB
a.savePolicy(e.getModel());
// Load policy from DB
a.loadPolicy(e.getModel());
}
}This adapter uses Testcontainers with LocalStack for integration testing. To run tests:
mvn testNo AWS credentials or configuration required! Tests automatically start a LocalStack container with DynamoDB support.
This project is under Apache 2.0 License. See the LICENSE file for the full license text.