成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

不會處理鑒權?那用 Casbin 吧,快速了解入門

開發 項目管理
稍微大一點的項目就一定會涉及到權限管理,這個系列我們給大家介紹一個非常好用的鑒權庫 casbin。

 [[431457]]

本文轉載自微信公眾號「GoLang全棧」,作者錕。轉載本文請聯系GoLang全棧公眾號。

稍微大一點的項目就一定會涉及到權限管理,這個系列我們給大家介紹一個非常好用的鑒權庫 casbin。

它是一個跨平臺的庫,支持很多種語言的鑒權。

官方文檔:https://casbin.org/docs/zh-CN/overview

光講解這個庫的 API 很顯然是枯燥的,所以我會結合 Gin,模擬實際開發中的鑒權去給大家講解他的使用。

所以我們的工程里面會用到到的庫如下:

  1. go get github.com/casbin/casbin/v2 
  2. go get github.com/gin-gonic/gin 

配套Github代碼

很開心的告訴大家,這個系列的文章我們會把代碼開源到 Github 上,為大家學習的路上掃平一切障礙。

我們官方的 Github 代碼閱讀,地址如下:

  1. https://github.com/GoLangStackDev/casbin-with-mysql-go.git 

本文配套 tag 標記:快速入門

快速入門

來一份入門代碼:

  1. package main 
  2.  
  3. import ( 
  4.  "github.com/casbin/casbin/v2" 
  5.  "fmt" 
  6.  
  7. func main() { 
  8.  sub := "lili" 
  9.  obj := "/posts" 
  10.  act := "GET" 
  11.  
  12.  e,err := casbin.NewEnforcer("resources/model.conf","resources/policy.csv"
  13.  checkError(err) 
  14.  ok,err := e.Enforce(sub,obj,act) 
  15.  checkError(err) 
  16.  if ok { 
  17.   fmt.Println("通過!"
  18.  }else
  19.   fmt.Println("不通過!"
  20.  } 
  21. // 統一錯誤檢查 
  22. func checkError(err error)  { 
  23.  if err!=nil { 
  24.   println(err.Error()) 
  25.  } 

我定義了一個方法 checkError 來統一處理報錯。

這里面涉及到兩個配置文件,分別是 model.conf 和 policy.csv 文件。

內容如下:

model.conf

  1. [request_definition] 
  2. r = sub, obj, act 
  3.  
  4. [policy_definition] 
  5. p = sub, obj, act 
  6.  
  7. [role_definition] 
  8. g = _, _ 
  9.  
  10. [policy_effect] 
  11. e = some(where (p.eft == allow)) 
  12.  
  13. [matchers] 
  14. m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act 

policy.csv

  1. p, member, /posts, GET 
  2. p, member, /posts/:id, GET 
  3.  
  4. p, admin, /posts, POST 
  5. p, admin, /posts/:id, PUT 
  6. p, admin, /posts/:id, DELETE 
  7.  
  8. g, admin, member 
  9. g, super, admin 
  10. g, lili, member 

這兩個配置文件你現在就暫時先理解為 model.conf 定義了匹配規則,policy.csv 定義了權限組等權限。

具體的解釋我們會在下一篇文章詳細介紹。

直接運行起來,你會看到控制臺輸出:

  1. 通過! 

假如此時我們把 act 改成 POST 就不能通過了。

沒錯 act 就表示我們的請求方法。

責任編輯:武曉燕 來源: GoLang全棧
相關推薦

2025-02-26 13:00:00

SpringBootJava開發

2023-11-20 08:09:11

Pulsar鑒權topic

2021-09-07 11:20:02

binlogMySQL數據庫

2021-08-04 08:31:10

MySQL數據庫日志

2025-02-27 13:00:00

SpringBoot數據鑒權代碼

2021-09-02 07:00:32

鑒權Web 應用Cookie-sess

2021-09-01 10:15:15

前端cookiesession

2019-05-20 14:57:35

Tomcat容器安全

2024-01-26 14:35:03

鑒權K8sNode

2014-07-10 11:34:05

2018-01-10 14:22:05

2024-05-28 08:24:18

2020-12-28 06:20:27

OptionalTryjava

2015-08-26 16:17:49

OpenStack OpenStack 架開源云平臺

2020-12-02 08:31:47

Elasticsear

2020-08-05 14:28:32

編程程序員代碼

2021-10-26 11:42:51

系統

2024-10-14 11:56:50

2023-03-30 07:48:46

接口鑒權SpringBoot

2023-10-31 07:13:43

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品成人一区二区三区夜夜夜 | 色欧美综合 | 伊人超碰 | 北条麻妃99精品青青久久 | 久久亚洲一区 | 午夜天堂精品久久久久 | 欧美日韩在线一区二区 | 日韩第一区| 97伦理电影网 | 男人天堂网址 | 国产一区二区三区免费观看视频 | 久久伊人精品 | 国产一区二区高清在线 | 欧洲一级视频 | 久久三区 | 91中文字幕在线 | 欧美a在线看| 欧美黄在线观看 | 亚洲精品成人在线 | 国产伦精品一区二区三区精品视频 | 国产日韩欧美一区 | 国产亚洲一区二区三区在线观看 | 91.xxx.高清在线 | 亚洲一区三区在线观看 | 亚洲v日韩v综合v精品v | 欧美日韩精品 | 99精品国产一区二区青青牛奶 | 91精品综合久久久久久五月天 | 九九伦理片 | 亚洲日产精品 | 黄色精品| 一本一道久久a久久精品综合蜜臀 | 国产91一区二区三区 | 精品国产一区二区三区性色av | 亚洲精品免费在线 | 久久精品小视频 | 日本三级电影在线看 | wwwxx在线观看 | 九九免费视频 | 国产91色在线 | 亚洲 | 视频一区二区三区四区五区 |