CasBin 数据库报错 Error:1071

CasBin 数据库报错 Error:1071

gormadapter.NewAdapter()报错Error:1071

 

2021/03/19 16:39:48 E:/gopath/pkg/mod/github.com/casbin/gorm-adapter/v3@v3.2.3/adapter.go:320 Error 1071: Specified key was too long; max key length is 1000 bytes
[0.502ms] [rows:0] CREATE UNIQUE INDEX idx_casbin_rule ON casbin_rule (ptype,v0,v1,v2,v3,v4,v5)
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x60 pc=0x613485]

解决办法:

将数据库引擎改为InnoDB

 

修改后:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你想要了解有关权限管理的演示,使用的是基于角色的访问控制(RBAC)和 Casbin 的解决方案。Casbin 是一个强大的授权库,它提供了灵活的访问控制模型和规则引擎。下面是一个简单的 RBAC 和 Casbin 的权限管理演示: 1. 安装 Casbin: ``` pip install casbin ``` 2. 创建一个示例访问控制模型(model.conf),定义了用户、角色、资源和操作: ``` [request_definition] r = sub, obj, act [policy_definition] p = sub, obj, act [role_definition] g = _, _ [policy_effect] e = some(where (p.eft == allow)) [matchers] m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act ``` 3. 创建一个权限管理策略文件(policy.csv),定义了角色与资源的访问权限: ``` p, alice, data1, read p, bob, data2, write g, alice, admin ``` 4. 在 Python 中使用 Casbin 进行权限验证: ```python from casbin import Enforcer # 加载访问控制模型和策略文件 enforcer = Enforcer("model.conf", "policy.csv") # 验证用户的访问权限 if enforcer.enforce("alice", "data1", "read"): print("alice 有读取 data1 的权限") else: print("alice 没有读取 data1 的权限") if enforcer.enforce("bob", "data2", "write"): print("bob 有写入 data2 的权限") else: print("bob 没有写入 data2 的权限") ``` 这只是一个简单的 RBAC 和 Casbin 的权限管理演示,你可以根据实际需求自定义更复杂的访问控制模型和策略。希望这个演示对你有帮助!如果你对 Casbin 想要了解更多信息,可以参考官方文档:https://casbin.org/

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值