https://github.com/jcasbin/jcasbin-mongo-adapter
MongoDB adapter for jCasbin
https://github.com/jcasbin/jcasbin-mongo-adapter
abac acl adapter auth authorization authz casbin database db java jcasbin mongo mongodb nosql rbac
Last synced: 9 months ago
JSON representation
MongoDB adapter for jCasbin
- Host: GitHub
- URL: https://github.com/jcasbin/jcasbin-mongo-adapter
- Owner: jcasbin
- License: apache-2.0
- Created: 2021-03-24T04:27:57.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-12-30T11:44:03.000Z (over 1 year ago)
- Last Synced: 2025-05-20T16:15:31.054Z (about 1 year ago)
- Topics: abac, acl, adapter, auth, authorization, authz, casbin, database, db, java, jcasbin, mongo, mongodb, nosql, rbac
- Language: Java
- Homepage: https://github.com/casbin/jcasbin
- Size: 21.5 KB
- Stars: 3
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
jcasbin-mongodb-adapter
===
[](https://codebeat.co/projects/github-com-jcasbin-mongo-adapter-master)
[](https://github.com/jcasbin/jcasbin-mongo-adapter/actions/workflows/maven-ci.yml)
[](https://codecov.io/gh/casbin/jcasbin-mongo-adapter)
[](https://javadoc.io/doc/org.casbin/jcasbin-mongo-adapter)
[](https://mvnrepository.com/artifact/org.casbin/jcasbin-mongo-adapter/latest)
[](https://discord.gg/S5UjpzGZjN)
jcasbin-mongodb-adapter is the [MongoDB](https://github.com/mongodb/mongo) adapter for [jCasbin](https://github.com/casbin/jcasbin). With this library, jCasbin can load policy from a MongoDB database or save policy to it.
## Installation
For Maven:
```xml
org.casbin
jcasbin-mongo-adapter
LATEST
```
optional: If your project already has a mongodb driver, please ignore it.
```xml
org.mongodb
mongodb-driver-sync
${mongodb.version}
```
## Simple Example
```java
package org.casbin.adapter;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoDatabase;
import org.casbin.jcasbin.main.Enforcer;
import org.casbin.jcasbin.persist.Adapter;
import org.jim.jcasbin.MongoAdapter;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
// Use MongoDB connection string and database name to initialize a MongoAdapter.
String connectionString = "mongodb://localhost:27017/";
MongoClient mongoClient = MongoClients.create(connectionString);
MongoDatabase database = mongoClient.getDatabase("casbin");
// Check and create a collection
if (!database.listCollectionNames().into(new ArrayList<>()).contains("casbin_rule")) {
database.createCollection("casbin_rule");
}
Adapter adapter = new MongoAdapter(mongoClient, "casbin");
Enforcer enforcer = new Enforcer("examples/rbac_model.conf", "examples/rbac_policy.csv");
// Check the permission.
enforcer.enforce("alice", "data1", "read");
// Modify the policy.
// enforcer.addPolicy(...);
// enforcer.removePolicy(...);
// Save the policy back to DB.
adapter.savePolicy(enforcer.getModel());
// Close the MongoDB client.
mongoClient.close();
}
}
```
## Getting Help
- [jCasbin](https://github.com/casbin/jcasbin)
## License
This project is under Apache 2.0 License. See the [LICENSE](LICENSE) file for the full license text.