91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

go web 權限管理 簡單例子 (面向對象權限 ABAC / Casbin)

發布時間:2020-08-03 12:59:13 來源:網絡 閱讀:1728 作者:295631788 欄目:開發技術

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("沒有權限")
    }
}

結果

權限正常
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏山县| 云阳县| 图们市| 鄄城县| 城市| 明溪县| 工布江达县| 江门市| 永顺县| 长垣县| 临海市| 宁化县| 搜索| 磐安县| 都兰县| 渝北区| 东莞市| 岱山县| 镇康县| 大渡口区| 咸阳市| 辽阳县| 宜丰县| 泰安市| 马山县| 和静县| 阿拉善盟| 保靖县| SHOW| 鄂州市| 玉屏| 安宁市| 泰和县| 景德镇市| 进贤县| 泗阳县| 建瓯市| 枣阳市| 芦溪县| 永胜县| 礼泉县|