#casbin #适配器 #rbac #rbatis #数据库 #保存-加载

casbin-rb-adapter

Rbatis适配器,支持从Rbatis支持数据库中加载和保存Casbin策略

6个版本

0.1.9 2024年6月27日
0.1.8 2024年6月27日

#69 in 数据库实现

Download history 168/week @ 2024-06-04 129/week @ 2024-06-11 158/week @ 2024-06-18 404/week @ 2024-06-25 49/week @ 2024-07-02

每月下载量 339次

Apache-2.0

33KB
674

Crates.io Docs Download

Casbin Rbatis适配器

Casbin的Rbatis适配器。使用此库,Casbin可以从Rbatis支持的数据库中加载或保存策略。

支持的数据库,请参阅 Rbatis

  • MySQL
  • PostgreSQL
  • SQLite
  • MSSQL
  • ...

Casbin在线编辑器

入门

将以下内容添加到 Cargo.toml

[dependencies]
casbin-rb-adapter = "0.1"
# casbin or use casbin_rb_adapter::casbin
casbin = "2"

# rbatis integration
rbs = "4"
rbatis = "4"

# choose rbatis driver
# rbdc-mysql = "*"
# rbdc-pg = "*"
# rbdc-sqlite= "*"
# rbdc-mssql = "*"

// or use your project Rbatis static instance
let rb = RBatis::new();
rb.init(MysqlDriver {}, url).unwrap();

let adapter = RbatisAdapter::new(&rb).await?;
// need to call db_sync() to create tables in database
// adapter.db_sync().await?;

let mut e = Enforcer::new("examples/rbac_model.conf", adapter).await?;

// e.enforce((sub, obj, act)).await?;

特性

  • tracing 适配器的日志记录器,
  • runtime-tokio casbin的运行时,
  • runtime-async-std casbin的运行时。

示例

examples/mysql_sample.rs

如何运行示例

您需要在项目根目录中创建一个 .env 文件,并添加以下配置

DATABASE_URL=mysql://root:123456@localhost:3306/casbin

更新日志

  • v0.1.9: 为casbin添加 runtime-tokioruntime-async-std 特性,为适配器添加 tracing 特性日志记录器。默认特性 runtime-tokio

依赖项

~18–32MB
~511K SLoC