Casbin Redis Adapter is an adapter for Casbin based on Redis.
go get github.com/mlsen/casbin-redis-adapter
package main
import (
"github.com/casbin/casbin/v2"
"github.com/mlsen/casbin-redis-adapter/v2"
)
func main() {
// The adapter can be initialized from a Redis URL
a, _ := redisadapter.NewFromURL("redis://:123@localhost:6379/0")
// Initialize a new Enforcer with the redis adapter
e, _ := casbin.NewEnforcer("model.conf", a)
// Load policy from redis
e.LoadPolicy()
// Add a policy to redis
e.AddPolicy("alice", "data1", "read")
// Check for permissions
e.Enforce("alice", "data1", "read")
// Delete a policy from redis
e.RemovePolicy("alice", "data1", "read")
// Save all policies to redis
e.SavePolicy()
}
Initialize Adapter from existing go-redis Client
package main
import (
"github.com/casbin/casbin/v2"
"github.com/go-redis/redis/v8"
"github.com/mlsen/casbin-redis-adapter/v2"
)
func main() {
// Initialize the redis client
rc := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
DB: 0,
Password: "123",
})
// ...
// The adapter can be initialized from a Redis URL
a := redisadapter.NewFromClient(rc)
// ...
}
Main differences to the official Redis Adapter
- This Adapter uses go-redis instead of Redigo
- This Adapter uses the original CSV format for saving rules to Redis, instead of marshalling them to JSON.
This project is licensed under the Apache 2.0 license.