GOLANG实现RBAC

栏目: IT技术 · 发布时间: 5年前 · 510

Role-Based Access Control(下简称rbac) 以角色为基础的访问控制模型,通过角色连接用户和权限,达到两者解耦的目的

rbac中有三种类型:用户、角色、权限,分别解释一下各自的作用

  • 用户:使用系统的个体,一般是自然人,通过操作系统达到一定目的
  • 权限:系统中每一个模块的操作,curd,的使用许可证明
  • 角色:用户和权限之间的桥梁,是一个抽象的概念,与用户或权限可以是一对多,一对一,多对一,多对多的关系,当用户操作某一个模块时,会先将用户名下的角色取出来和模块权限进行对比,如果满足条件即可操作,反之则不行

使用介绍

  • 安装
  1. go get github.com/ne7ermore/gRBAC
  • 数据库配置 本项目使用的mongodb,如果没有安装mongo请先安装
  1. go get gopkg.in/mgo.v2

数据库信息配置在 github.com/ne7ermore/gRBAC/common/const.go 中,可以根据自己实际情况修改,默认为:

  1. var (
  2. Addrs string = "127.0.0.1:27017"
  3. Timeout int64 = 5
  4. PoolLimit int = 1000
  5. )
  • 引入auth模块
  1. import "github.com/ne7ermore/gRBAC/auth"
  • 使用
  1. func createPerm() {
  2. p, err := auth.CreatePermisson("p1", "form1:abc:view")
  3. if err != nil {
  4. panic(err)
  5. }
  6. // handle p
  7. }
  8. func createRole() {
  9. r, err := auth.CreateRole("role1")
  10. if err != nil {
  11. panic(err)
  12. }
  13. // add permission
  14. if _, err := auth.Assign(r.Id.Hex(), p.Id.Hex()); err != nil {
  15. panic(err)
  16. }
  17. }
  18. func createUser() {
  19. u, err := auth.CreateUser("use1")
  20. if err != nil {
  21. panic(err)
  22. }
  23. // add role
  24. if _, err := auth.AddRole(u.Id.Hex(), r.Id.Hex()); err != nil {
  25. panic(err)
  26. }
  27. }

所有API

Function Description
CreatePermisson Create a new permisson
GetPerm get permission by id
UpdatePerm update permission by id
CreateRole Create a new role
GetRole Get role by id
Assign Assign a permission to a role
Revoke Revoke a permission from the role
CreateUser Create a new user
GetUser Get one user by mongid
GetUserByUid Get one user by Uid
AddRole Add one role to a user
DelRole Delete one role from the user
IsPrmitted A user has a permission or not
GetAllPerms Get all permissions
GetAllRoles Get all roles
GetAllUsers Get all users

作者

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

热搜:搜索排名营销大揭秘

热搜:搜索排名营销大揭秘

【美】肖恩·布拉德利 / 中国人民大学出版社有限公司 / 2018-7-30 / CNY 55.00

首部大数据在我国政府管理场景中的应用实践案例读本,全面展示我国电子政务与数字化建设的成果,深度理解实施国家大数据战略的重要意义。 本书作者作为国内最早从事大数据应用研究的实践者之一,亲历了中国大数据的发展历程、主要事件、应用案例以及行业变化。 在本书中,作者将其所亲历的大数据发展历程进行了阐述,从大数据的基本概念、特点到实践解读,通俗易懂,给我们的实际工作提供了重要参考。作者将帮助读者......一起来看看 《热搜:搜索排名营销大揭秘》 这本书的介绍吧!

随机密码生成器

随机密码生成器

多种字符组合密码

RGB HSV 转换

RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具

HSV CMYK 转换工具

HSV CMYK互换工具