Casbin

Casbin

  • Документ
  • API
  • Редактор
  • Плагины IDE
  • Single Sign-On (SSO)
  • Форум
  • Справка
  • Блог
  • Pricing
  • Contact Sales
  • Languages iconРусский
    • English
    • 中文
    • 한국어
    • Français
    • Deutsch
    • 日本語
    • Помочь перевести
  • GitHub

›Хранилище

Основы

  • Общий обзор
  • Начать работу
  • Как это работает
  • Уроки

Модель

  • Поддерживаемые модели
  • Синтаксис для моделей
  • Эффект
  • Функция
  • RBAC
  • RBAC with Pattern
  • RBAC с доменами
  • Casbin RBAC v.s. RBAC96
  • АДАТ
  • Приоритетная модель
  • Супер админ

Хранилище

  • Модель хранилища
  • Хранилище политики
  • Загрузка подмножества политик

Расширения

  • Enforcers
  • Адаптеры
  • Наблюдатели
  • Диспетчеры
  • Менеджеры ролей
  • Посредники
  • GraphQL Middlewares
  • Облачные Посредники

API

  • Обзор API
  • API управления
  • RBAC API
  • RBAC с доменным API
  • RoleManager API
  • Права доступа к данным

Расширенное использование

  • Многопоточность
  • Benchmarks
  • Оптимизация производительности
  • Авторизация Кубернетов
  • Авторизация служебной ячейки через посланника

Управление

  • Администратор портала
  • Служба Касбина
  • Обработка журнала и ошибок
  • Использование интерфейса

Редактор

  • Онлайн-редактор
  • Плагины IDE

Ещё

  • Наши усыновители
  • Вклад
  • Политика конфиденциальности
  • Условия предоставления услуг
Translate

Модель хранилища

В отличие от политики, модель может быть загружена только тогда, когда она не может быть сохранена. Поскольку мы считаем, что модель не является динамическим компонентом и не должна быть изменена при запуске, так что мы не реализуем API, чтобы сохранить модель в хранилище.

Однако хорошая новость заключается в том, что мы предлагаем три эквивалентных способа либо статической, либо динамической загрузки:

Загрузить модель из .CONF файла

Это самый распространенный способ использования Касбина. Это легко понять для начинающих и удобно для совместного пользования, когда вы спрашиваете команду Casbin за помощью.

Содержимое файла .CONF examples/rbac_model.conf:

[request_definition]
r = sub, obj, действовать

[policy_definition]
p = sub, obj, act

[role_definition]
g = _, _

[policy_effect]
e = где-то (стр. ft == allow))

[matchers]
m = g(r.sub, p. ub) && r.obj == p.obj && r.act == p.act

Затем вы можете загрузить файл модели как:

e := casbin.NewEnforcer("примеры/rbac_model.conf", "examples/rbac_policy.csv")

Загрузить модель из кода

Модель может быть инициализирована динамически из кода вместо использования файла .CONF . Вот пример модели RBAC:

import (
    "github.com/casbin/casbin/casbin/v2"
    "github.com/casbin/casbin/v2/model"
    "github.com/casbin/casbin/v2/persist/file-adapter"
)

// Инициализация модели из кода Go.
m := model.NewModel()
m.AddDef("r", "r", "sub, obj, act")
m.AddDef("p", "p", "sub, obj, act")
m.AddDef("g", "_, _")
m.Def("e", "e", "где" (p. ft == allow))")
m.AddDef("m", "g(r.sub, p.sub) && r.obj == p. bj && r.act == p.act")

// Загрузить правила с адаптера файлов .CSV.
// Замените его на адаптер, чтобы избежать файлов.
a := fileadapter.NewAdapter("examples/rbac_policy.csv")

// Создание ссылки.
e := casbin.NewEnforcer(m, a)

Загрузить модель из строки

Или вы можете просто загрузить весь текст модели из многострочной строки. Хорошей точкой для этого является то, что вам не нужно поддерживать модель файла.

import (
    "github.com/casbin/casbin/v2"
    "github.com/casbin/casbin/v2/model"
)

// Инициализация модели из строки.
текст :=
`
[request_definition]
r = sub, obj, act

[policy_definition]
p = sub, obj, act

[role_definition]
g = _, _

[policy_effect]
e = как-то (стр. ft == допустить))

[matchers]
м = g(r.sub, p. ub) && r.obj == p.obj && r.act == p. ct
`
m, _ := model.NewModelFromString(text)

// Загрузить правила политики из CSV файла.
// Замените его на адаптер, чтобы избежать файлов.
a := fileadapter.NewAdapter("examples/rbac_policy.csv")

// Создание ссылки.
e := casbin.NewEnforcer(m, a)
← Супер админХранилище политики →
  • Загрузить модель из .CONF файла
  • Загрузить модель из кода
  • Загрузить модель из строки
Casbin
Docs
Getting StartedManagement APIRBAC APIMiddlewares
Community
Who's using Casbin?Stack Overflow
Casbin          jCasbin
Node-Casbin   PHP-CasbinPyCasbin          Casbin.NETCasbin-CPP        Casbin-RS
Follow @casbinHQ
Copyright © 2022 Casbin Organization