内容简介:ABAC调用 github.com/casbin/casbin
go web 权限管理 解决方案 (面向对象权限 ABAC / Casbin)
说明
ABAC
调用 github.com/casbin/casbin
abac_model.conf
[request_definition] r = sub, obj, act [policy_definition] p = sub, obj,act [policy_effect] e = some(where (p.eft == allow)) [matchers] m = r.sub.App == r.obj.App && r.sub.Type == r.obj.Type && r.sub.Method == r.obj.Method
main.go
package main import ( "fmt" "github.com/casbin/casbin" ) type User struct { Id int UserName string Group []Group } type Group struct { Id int Name string App string // app Type string // 类型 Method string // 方法 Priority int // 优先级 } type Obj struct { App string // app Type string // 类型 Method string // 方法 } func main() { e := casbin.NewEnforcer("E:\\go-test\\test\\abac\\abac_model.conf") group1 := Group{ Name: "group1", App: "asset", Type: "aliyun", Method: "Get", Priority: 100, } group2 := Group{ Name: "group2", App: "asset", Type: "aliyun", Method: "Get", Priority: 100, } // 用户 hequan 属于 group1 , group2 user1 := User{ UserName: "hequan", Group: []Group{group1, group2}, } obj := Obj{ App: "asset", Type: "aliyun", Method: "Get", } var perms = false // 检查 用户 hequan 所有的组 是否有权限 for _, v := range user1.Group { if e.Enforce(v, obj, ""){ perms = true break } } if perms { fmt.Println("权限正常") } else { fmt.Println("没有权限") } }
结果
权限正常
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Django框架–权限代码+左侧菜单和权限应用
- 同等权限下多任职之间数据权限的实例
- 在 Windows 系统上降低 UAC 权限运行程序(从管理员权限降权到普通用户权限)
- 在 Windows 系统上降低 UAC 权限运行程序(从管理员权限降权到普通用户权限)
- Spring-Security权限管理框架(1)——根据角色权限登录
- Tangdao 2.0.1 发布,更新前后分离,完成基础角色权限,数据权限组件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
微信营销与运营一册通
何秀芳、葛存山 / 人民邮电出版社 / 2014-10
《微信营销与运营一册通》深入介绍了当今最为火热的话题——微信营销,内容全面、系统和深入。它基于微信的最新版本,从策略、技巧与案例等多角度详细解析了微信的营销与运营,所有内容都是行业经验的结晶,旨在为企业或个人运用微信提供有价值的参考。《微信营销与运营一册通》主要内容如下。 * 5大微信营销利器:书中介绍了5大微信营销利器,包括漂流瓶、二维码、LBS功能、朋友圈和公众平台等。 * 6大微......一起来看看 《微信营销与运营一册通》 这本书的介绍吧!