casbin-adapter is a LuaSQL based adapter for Casbin that supports policies from SQL-based databases (MySQL, PostgreSQL, SQLite3).
First, install the corresponding driver of LuaSQL from LuaRocks based on the database you use:
- For MySQL, install luasql-mysql.
- For PostgreSQL, install luasql-postgres.
- For SQLite3, install luasql-sqlite3.
Then install the casbin-adapter from LuaRocks by
sudo luarocks install https://raw.githubusercontent.com/casbin-lua/luasql-adapter/master/casbin-adapter-1.0.0-1.rockspec
To create a new Casbin Enforcer using a MySQL adapter, use:
local Enforcer = require("casbin")
local Adapter = require("casbin.mysql")
local a = Adapter:new(database, user, password, hostname, port) -- hostname, port are optional
local e = Enforcer:new("/path/to/model.conf", a) -- creates a new Casbin enforcer with the model.conf file and the database
For other adapters, replace local Adapter = require("casbin.mysql")
with:
local Adapter = require("casbin.postgres")
for PostgreSQL adapter.local Adapter = require("casbin.sqlite3")
for SQLite3 adapter. In SQLite3 adapter, only database field is required and others are optional.
This project is under Apache 2.0 License. See the LICENSE file for the full license text.