-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
88 lines (84 loc) · 39.1 KB
/
Copy pathindex.html
File metadata and controls
88 lines (84 loc) · 39.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<!doctype html>
<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Apache Casbin · An authorization library | Apache Casbin</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://casbin.org/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" property="og:locale:alternate" content="zh"><meta data-rh="true" property="og:locale:alternate" content="ko"><meta data-rh="true" property="og:locale:alternate" content="ru"><meta data-rh="true" property="og:locale:alternate" content="fr"><meta data-rh="true" property="og:locale:alternate" content="de"><meta data-rh="true" property="og:locale:alternate" content="ja"><meta data-rh="true" property="og:locale:alternate" content="es"><meta data-rh="true" property="og:locale:alternate" content="pt"><meta data-rh="true" property="og:locale:alternate" content="uk"><meta data-rh="true" property="og:locale:alternate" content="th"><meta data-rh="true" property="og:locale:alternate" content="ar"><meta data-rh="true" property="og:locale:alternate" content="id"><meta data-rh="true" property="og:locale:alternate" content="vi"><meta data-rh="true" property="og:locale:alternate" content="it"><meta data-rh="true" property="og:locale:alternate" content="ms"><meta data-rh="true" property="og:locale:alternate" content="tr"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" name="Apache Casbin" content="An authorization library that supports access control models like ACL, RBAC, ABAC, ReBAC, PBAC, OrBAC, BLP, Biba, LBAC, UCON for Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) and Elixir"><meta data-rh="true" property="og:title" content="Apache Casbin · An authorization library | Apache Casbin"><meta data-rh="true" name="description" content="An authorization library that supports access control models like ACL, RBAC, ABAC, ReBAC, PBAC, OrBAC, BLP, Biba, LBAC, UCON, Priority, RESTful for Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) and Elixir"><meta data-rh="true" property="og:description" content="An authorization library that supports access control models like ACL, RBAC, ABAC, ReBAC, PBAC, OrBAC, BLP, Biba, LBAC, UCON, Priority, RESTful for Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) and Elixir"><link data-rh="true" rel="icon" href="/img/favicon.png"><link data-rh="true" rel="canonical" href="https://casbin.org/"><link data-rh="true" rel="alternate" href="https://casbin.org/" hreflang="en"><link data-rh="true" rel="alternate" href="https://casbin.org/zh/" hreflang="zh"><link data-rh="true" rel="alternate" href="https://casbin.org/ko/" hreflang="ko"><link data-rh="true" rel="alternate" href="https://casbin.org/ru/" hreflang="ru"><link data-rh="true" rel="alternate" href="https://casbin.org/fr/" hreflang="fr"><link data-rh="true" rel="alternate" href="https://casbin.org/de/" hreflang="de"><link data-rh="true" rel="alternate" href="https://casbin.org/ja/" hreflang="ja"><link data-rh="true" rel="alternate" href="https://casbin.org/es/" hreflang="es"><link data-rh="true" rel="alternate" href="https://casbin.org/pt/" hreflang="pt"><link data-rh="true" rel="alternate" href="https://casbin.org/uk/" hreflang="uk"><link data-rh="true" rel="alternate" href="https://casbin.org/th/" hreflang="th"><link data-rh="true" rel="alternate" href="https://casbin.org/ar/" hreflang="ar"><link data-rh="true" rel="alternate" href="https://casbin.org/id/" hreflang="id"><link data-rh="true" rel="alternate" href="https://casbin.org/vi/" hreflang="vi"><link data-rh="true" rel="alternate" href="https://casbin.org/it/" hreflang="it"><link data-rh="true" rel="alternate" href="https://casbin.org/ms/" hreflang="ms"><link data-rh="true" rel="alternate" href="https://casbin.org/tr/" hreflang="tr"><link data-rh="true" rel="alternate" href="https://casbin.org/" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://6NBEV8TOFK-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache Casbin RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Casbin Atom Feed">
<link rel="preconnect" href="https://www.google-analytics.com">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-8S2TKCJ27X"></script>
<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-8S2TKCJ27X",{})</script>
<link rel="search" type="application/opensearchdescription+xml" title="Apache Casbin" href="/opensearch.xml">
<script src="/js/hotjar.js" async></script>
<script src="/js/probe.js" async></script>
<script src="/js/clarity.js" async></script><link rel="stylesheet" href="/assets/css/styles.0576a95c.css">
<script src="/assets/js/runtime~main.7b3d124c.js" defer="defer"></script>
<script src="/assets/js/main.da5a03ad.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/casbin.svg" alt="Casbin Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/casbin.svg" alt="Casbin Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">Apache Casbin</b></a><div class="navbar__item dropdown dropdown--hoverable"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/docs/overview">Docs</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/get-started">Get Started</a></li><li><a class="dropdown__link" href="/docs/category/access-control-models">Model</a></li><li><a class="dropdown__link" href="/docs/category/storage">Storage</a></li><li><a class="dropdown__link" href="/docs/adapters">Adapters</a></li><li><a class="dropdown__link" href="/docs/category/api">API</a></li><li><a class="dropdown__link" href="/docs/ide-plugins">IDE plugins</a></li><li><a class="dropdown__link" href="/docs/contributing">Start Contributing</a></li></ul></div><a class="navbar__item navbar__link" href="/ecosystem">Plugins</a><a class="navbar__item navbar__link" href="/gallery">Authorization Models</a><a class="navbar__item navbar__link" href="/editor">GUI Policy Editor</a><a class="navbar__item navbar__link" href="/blog">Blog</a><a class="navbar__item navbar__link" href="/help">Help</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/ko/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ko">한국어</a></li><li><a href="/ru/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ru">Русский</a></li><li><a href="/fr/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li><li><a href="/ja/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ja">日本語</a></li><li><a href="/es/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/pt/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="pt">Português</a></li><li><a href="/uk/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="uk">Українська</a></li><li><a href="/th/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="th">ไทย</a></li><li><a href="/ar/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ar">العربية</a></li><li><a href="/id/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="id">Indonesia</a></li><li><a href="/vi/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="vi">Tiếng Việt</a></li><li><a href="/it/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="it">Italiano</a></li><li><a href="/ms/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ms">Melayu</a></li><li><a href="/tr/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="tr">Türkçe</a></li><li class=""><hr style="margin: 0.3rem 0;"></li><li><a href="https://crowdin.com/project/casbin-website" target="_blank" rel="noopener noreferrer" class="dropdown__link">Help Us Translate<svg width="12" height="12" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><a href="https://github.com/casbin/casbin" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><a href="https://discord.gg/S5UjpzGZjN" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-community-discord"></a><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Meta+k)" aria-keyshortcuts="Meta+k"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="11" cy="11" r="8" stroke="currentColor" fill="none" stroke-width="1.4"></circle><path d="m21 21-4.3-4.3" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><main><header class="hero hero--primary heroBanner_qdFl"><video class="heroVideo_l9rg" autoplay="" muted="" loop="" playsinline="" poster="/img/background.png" aria-hidden="true"><source src="https://cdn.casbin.org/video/background.mp4" type="video/mp4"></video><div class="heroOverlay_ZhSg"></div><div class="cursorHalo_ADxT" aria-hidden="true"></div><div class="container heroContent_mKPX"><a href="https://github.com/casbin/casbin/releases/tag/v3.4.1" target="_blank" rel="noopener noreferrer" class="heroPill_AYLM"><span class="pillNew_tazH">NEWS</span><span class="pillText__PZW">v3.4.1 Released</span><span class="pillArrow_QUEp">→</span></a><h1 class="hero__title"><span class="brandName_wnPR">Apache Casbin</span><br><span><span class="tagline_Bqj_">Open-source authorization for</span> <span class="animatedTextContainer_dJqr" aria-live="polite" aria-atomic="true" style="width:auto;display:inline-block"><span class="animatedText_wwh0">applications</span><svg class="wavyUnderline_XsHz" viewBox="0 0 200 10" preserveAspectRatio="none" aria-hidden="true" style="width:0px"><path d="M0,5 Q10,0 20,5 T40,5 T60,5 T80,5 T100,5 T120,5 T140,5 T160,5 T180,5 T200,5" fill="none" stroke="currentColor" stroke-width="3"></path></svg></span></span><br></h1><p class="hero__subtitle">A powerful and efficient open-source access control library that supports multiple authorization models</p><div class="actionButtons_MFbq"><a class="button button--lg getStartedBtn_NZ39" href="/docs/get-started"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg>Get Started</a><a class="button button--lg tryEditorBtn_WvuM" href="/editor"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code" aria-hidden="true"><path d="m16 18 6-6-6-6"></path><path d="m8 6-6 6 6 6"></path></svg>Try Online Editor</a></div><div style="margin-top:18px"><div class="logoCarousel_YdvZ whiteBg_ctSD" aria-label="Users carousel"><div class="viewport_muTu"><div class="track_Gtqu"></div></div></div></div></div></header><div class="languageIntegration_dkKp"><div class="container"><div class="headlineContainer_ATH5"><h2 class="headline_YK14">Use Apache Casbin with <span class="languageName_lcrP">Multiple Languages</span></h2></div><div class="iconGrid_OJ0V"><a href="https://github.com/casbin" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Golang"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/go-logo-1.svg" alt="Golang" class="icon_nYfC"></div></a><a href="https://github.com/casbin/jcasbin" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Java"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/jee-3.svg" alt="Java" class="icon_nYfC"></div></a><a href="https://github.com/casbin/casbin-cpp" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="C/C++"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/c.svg" alt="C/C++" class="icon_nYfC"></div></a><a href="https://github.com/casbin/node-casbin" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Node.js"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/nodejs-1.svg" alt="Node.js" class="icon_nYfC"></div></a><a href="https://github.com/casbin/casbin.js" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Front-end JavaScript"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/logo-javascript.svg" alt="Front-end JavaScript" class="icon_nYfC"></div></a><a href="https://github.com/php-casbin/php-casbin" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="PHP"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/PHP-logo.svg" alt="PHP" class="icon_nYfC"></div></a><a href="https://github.com/php-casbin/laravel-authz" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Laravel"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/laravel-2.svg" alt="Laravel" class="icon_nYfC"></div></a><a href="https://github.com/casbin/pycasbin" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Python"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/python-5.svg" alt="Python" class="icon_nYfC"></div></a><a href="https://github.com/casbin/Casbin.NET" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label=".NET (C#)"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/dotnet-logo.svg" alt=".NET (C#)" class="icon_nYfC"></div></a><a href="https://github.com/casbin4d/Casbin4D" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Delphi"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/delphi-2.svg" alt="Delphi" class="icon_nYfC"></div></a><a href="https://github.com/casbin/casbin-rs" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Rust"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/rust.svg" alt="Rust" class="icon_nYfC"></div></a><a href="https://github.com/CasbinRuby/casbin-ruby" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Ruby"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/ruby.svg" alt="Ruby" class="icon_nYfC"></div></a><a href="https://github.com/casbin/SwiftCasbin" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Swift (Objective-C)"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/swift-15.svg" alt="Swift (Objective-C)" class="icon_nYfC"></div></a><a href="https://github.com/casbin/lua-casbin" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Lua (OpenResty, Kong, APISIX)"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/lua-5.svg" alt="Lua (OpenResty, Kong, APISIX)" class="icon_nYfC"></div></a><a href="https://github.com/casbin/dart-casbin" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Dart (Flutter)"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/dart.svg" alt="Dart (Flutter)" class="icon_nYfC"></div></a><a href="https://github.com/casbin/casbin-ex" target="_blank" rel="noopener noreferrer" class="iconLink_XWnq" aria-label="Elixir"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/elixir-lang-icon.svg" alt="Elixir" class="icon_nYfC"></div></a><a class="iconLink_XWnq" aria-label="Cloud Native (Kubernetes, Istio, Envoy, KubeSphere)" href="/docs/cloud-native"><div class="iconContainer_x64F"><img src="https://cdn.casbin.org/language/kubernets.svg" alt="Cloud Native (Kubernetes, Istio, Envoy, KubeSphere)" class="icon_nYfC"></div></a></div></div></div><section class="features_t9lD"><div class="container"><div class="row"><div class="col col--4"><div class="text--center"><img src="/img/model.png" class="featureSvg_GfXr" alt="[object Object]"></div><div class="text--center padding-horiz--md"><h3>Hybrid access control models</h3><p>Apache Casbin uses CONF files to define access control models based on the PERM metamodel (Policy, Effect, Request, Matchers). You can change or upgrade your authorization mechanism by modifying the configuration file.</p></div></div><div class="col col--4"><div class="text--center"><img src="/img/storage.png" class="featureSvg_GfXr" alt="[object Object]"></div><div class="text--center padding-horiz--md"><h3>Flexible policy storage</h3><p>Apache Casbin policies can be stored in memory, files, or databases. We support dozens of storage backends including MySQL, Postgres, Oracle, MongoDB, Redis, Cassandra, and AWS S3. See the full list of <a href="/docs/AdapterData">adapters</a>.</p></div></div><div class="col col--4"><div class="text--center"><img src="/img/language.png" class="featureSvg_GfXr" alt="[object Object]"></div><div class="text--center padding-horiz--md"><h3>Cross-languages & cross-platforms</h3><p>Apache Casbin is implemented in multiple languages including Golang, Java, PHP, Node.js, Python, .NET, Rust, and more. All implementations share the same API and behavior.</p></div></div></div></div></section><div class="editorSection_V_OD"><div class="container"><div class="editorHeader_Y6XO"><h2 class="editorTitle_fPqp">Try the Apache Casbin Online Editor</h2><p class="editorDescription_mHwp">Write and test your Apache Casbin model and policy in real-time with the interactive online editor. Try different access control models and see results instantly.</p></div><div class="editorContainer_iMke"><div class="editorWrapper_Xmno"><iframe src="https://editor.casbin.org/?theme=light&lang=en" class="editorIframe_XiDt" title="Apache Casbin Online Editor"></iframe></div><div class="editorFooter_Tv6g"><a class="button button--primary button--lg" href="/editor">Open Full Editor</a></div></div></div></div><div class="policypersistence_VeHm"><div class="container text--center"><div class="row"><div class="col" style="margin-block:auto"><h3> <!-- -->Policy Persistence</h3>Apache Casbin stores policies through adapters. To keep the library lightweight, adapter code is separated from the main library (except for the default file adapter). We support third-party adapter contributions. See the full list of <a href="/docs/adapters">adapters</a> for more information.</div><div style="margin-inline:auto"><img src="/img/store.png" alt="Policy Persistence" width="500" height="500"></div></div></div></div><div class="policyenforcement_aBLo"><div class="container text--center"><div class="row"><div style="margin-inline:auto"><img src="/img/scale.png" alt="Policy enforcement at scale" width="500" height="500"></div><div class="col" style="margin-block:auto"><h3>Policy Enforcement at Scale</h3>Some adapters support filtered policy loading. This means Apache Casbin can load only a subset of policies from storage based on specified filters. This feature is useful for large-scale, multi-tenant applications where loading all policies at once would be inefficient.</div></div></div></div><div class="rolemanager_Dhe_"><div class="container text--center"><div class="row"><div class="col" style="margin-block:auto"><h3>Role Manager</h3>The role manager handles RBAC role hierarchy (user-role mappings) in Apache Casbin. It can load role data from Apache Casbin policy rules or from external sources like LDAP, Okta, Auth0, Azure AD, etc. To keep the library lightweight, role manager code is separated from the main library (except for the default one). See all available <a href="/docs/role-managers">role-managers</a>.</div><div style="margin-inline:auto"><img src="/img/role.png" alt="Role manager" width="500" height="500"></div></div></div></div><div class="hero text--center showcase"><div class="container"><h1>Who's using Apache Casbin?</h1><p style="width:50vw;margin:auto">Hundreds of projects use Apache Casbin, from Fortune 500 companies to new startups. If you want to see what can be built with Apache Casbin, <a href="/users">check out these apps</a>!</p><br><br><div class="showcaseLogos"><a class="showcaseLogo" href="https://github.com/intel/rmd" target="_blank" rel="noreferrer"><img src="/img/users/intel.png" title="Intel RMD" alt="Intel RMD"></a><a class="showcaseLogo" href="https://github.com/goharbor/harbor" target="_blank" rel="noreferrer"><img src="/img/users/vmware.png" title="Vmware Harbor" alt="Vmware Harbor"></a><a class="showcaseLogo" href="https://docs.docker.com/engine/extend/legacy_plugins/#authorization-plugins" target="_blank" rel="noreferrer"><img src="/img/users/docker.png" title="Docker" alt="Docker"></a><a class="showcaseLogo" href="https://github.com/orange-cloudfoundry/gobis" target="_blank" rel="noreferrer"><img src="/img/users/orange.png" title="Orange Gobis" alt="Orange Gobis"></a><a class="showcaseLogo" href="https://www.linkedin.com/in/openmohan/" target="_blank" rel="noreferrer"><img src="/img/users/cisco.png" title="Cisco" alt="Cisco"></a><a class="showcaseLogo" href="https://github.com/microsoft/mouselog" target="_blank" rel="noreferrer"><img src="/img/users/microsoft.png" title="Microsoft" alt="Microsoft"></a><a class="showcaseLogo" href="https://github.com/casbin/casbin/pull/56" target="_blank" rel="noreferrer"><img src="/img/users/verizon.png" title="Verizon" alt="Verizon"></a><a class="showcaseLogo" href="https://github.com/dragonflyoss/Dragonfly2/search?q=casbin&type=code" target="_blank" rel="noreferrer"><img src="/img/users/alibaba.png" title="Alibaba" alt="Alibaba"></a><a class="showcaseLogo" href="https://github.com/skydive-project/skydive" target="_blank" rel="noreferrer"><img src="/img/users/redhat.png" title="Redhat" alt="Redhat"></a><a class="showcaseLogo" href="https://github.com/tkestack/tke" target="_blank" rel="noreferrer"><img src="/img/users/tencent.png" title="Tencent" alt="Tencent"></a><a class="showcaseLogo" href="https://github.com/netsec-ethz/" target="_blank" rel="noreferrer"><img src="/img/users/eth.png" title="ETH Zurich" alt="ETH Zurich"></a><a class="showcaseLogo" href="https://github.com/tmobile/jazz" target="_blank" rel="noreferrer"><img src="/img/users/t-mobile.png" title="T-Mobile" alt="T-Mobile"></a><a class="showcaseLogo" href="https://loopback.io/doc/en/lb4/migration-auth-access-control-example.html#using-casbin" target="_blank" rel="noreferrer"><img src="/img/users/ibm.png" title="IBM" alt="IBM"></a><a class="showcaseLogo" href="https://github.com/casbin/casbin/issues/299" target="_blank" rel="noreferrer"><img src="/img/users/f5.png" title="F5" alt="F5"></a><a class="showcaseLogo" href="https://github.com/casbin/casbin/issues/302" target="_blank" rel="noreferrer"><img src="/img/users/bose.png" title="Bose" alt="Bose"></a><a class="showcaseLogo" href="https://github.com/r-spacex/SpaceX-API/commit/f8daa8f9878dcd7a281fc8081e3aeb8e5d216089" target="_blank" rel="noreferrer"><img src="/img/users/rspacex.png" title="r/SpaceX" alt="r/SpaceX"></a><a class="showcaseLogo" href="https://www.elastic.co/guide/en/cloud-on-k8s/master/k8s-dependencies.html" target="_blank" rel="noreferrer"><img src="/img/users/elastic.png" title="Elastic" alt="Elastic"></a><a class="showcaseLogo" href="https://www.linkedin.com/search/results/people/?keywords=casbin%20honeywell" target="_blank" rel="noreferrer"><img src="/img/users/honeywell.png" title="Honeywell" alt="Honeywell"></a><a class="showcaseLogo" href="https://www.linkedin.com/in/raghavbabu" target="_blank" rel="noreferrer"><img src="/img/users/hpe.png" title="HPE" alt="HPE"></a><a class="showcaseLogo" href="https://www.linkedin.com/in/peterjotoole" target="_blank" rel="noreferrer"><img src="/img/users/se.png" title="Schneider Electric" alt="Schneider Electric"></a><a class="showcaseLogo" href="https://www.linkedin.com/in/kshitij-rastogi19" target="_blank" rel="noreferrer"><img src="/img/users/siemens.png" title="SIEMENS" alt="SIEMENS"></a><a class="showcaseLogo" href="https://www.musma.net/" target="_blank" rel="noreferrer"><img src="/img/users/musma.png" title="Musma" alt="Musma"></a><a class="showcaseLogo" href="https://jdlt.co.uk/" target="_blank" rel="noreferrer"><img src="/img/users/jdlt.png" title="Jdlt" alt="Jdlt"></a><a class="showcaseLogo" href="https://www.linkedin.com/in/andrew-weng/" target="_blank" rel="noreferrer"><img src="/img/users/360.png" title="360" alt="360"></a><a class="showcaseLogo" href="https://github.com/bytebase/bytebase/blob/740afc6286cd855fecc3cc54875583c6b650a41a/server/server.go" target="_blank" rel="noreferrer"><img src="/img/users/bytebase.png" title="Bytebase" alt="Bytebase"></a><a class="showcaseLogo" href="https://github.com/milvus-io/milvus/blob/d7f38a803d5d23d3e061702e73770cb68aee1dc2/internal/proxy/privilege_interceptor.go" target="_blank" rel="noreferrer"><img src="/img/users/zilliz.png" title="zilliz" alt="zilliz"></a><a class="showcaseLogo" href="https://www.linkedin.com/in/nihalpandit" target="_blank" rel="noreferrer"><img src="/img/users/ontario.png" title="Ontario Government" alt="Ontario Government"></a><a class="showcaseLogo" href="https://apachecon.com/acasia2021/sessions/1049.html" target="_blank" rel="noreferrer"><img src="/img/users/pulsar.png" title="Apache Pulsar" alt="Apache Pulsar"></a></div></div></div></main></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/get-started">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/management-api">Management API</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/rbac-api">RBAC API</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/middlewares">Middlewares</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item">
<a href="https://discord.gg/S5UjpzGZjN" target="_blank" rel="noopener noreferrer" class="footer__link-item footer-community-link">
<svg class="footer-community-icon" viewBox="0 0 127.14 96.36" xmlns="http://www.w3.org/2000/svg">
<path d="M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z"/>
</svg>
<span>Discord</span>
</a>
</li><li class="footer__item">
<a href="https://stackoverflow.com/search?q=casbin" target="_blank" rel="noopener noreferrer" class="footer__link-item footer-community-link">
<svg class="footer-community-icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M18.986 21.865v-6.404h2.134V24H1.844v-8.539h2.13v6.404h15.012zM6.111 19.731H16.85v-2.137H6.111v2.137zm.259-4.852l10.48 2.189.451-2.07-10.478-2.187-.453 2.068zm1.359-5.056l9.705 4.53.903-1.95-9.706-4.53-.902 1.936v.014zm2.715-4.785l8.217 6.855 1.359-1.62-8.216-6.853-1.35 1.617-.01.001zM15.751 0l-1.746 1.294 6.405 8.604 1.746-1.294L15.749 0h.002z"/>
</svg>
<span>Stack Overflow</span>
</a>
</li><li class="footer__item">
<a href="https://groups.google.com/g/casbin" target="_blank" rel="noopener noreferrer" class="footer__link-item footer-community-link">
<svg class="footer-community-icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/>
</svg>
<span>Google Groups</span>
</a>
</li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item">
<a href="https://github.com/casbin/casbin" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/casbin?label=Casbin&style=social">
</a>
<a href="https://github.com/casbin/jcasbin" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/jcasbin?label=jCasbin&style=social">
</a>
</li><li class="footer__item">
<a href="https://github.com/casbin/node-casbin" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/node-casbin?label=Node-Casbin&style=social">
</a>
<a href="https://github.com/php-casbin/php-casbin" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/php-casbin/php-casbin?label=PHP-Casbin&style=social">
</a>
</li><li class="footer__item">
<a href="https://github.com/casbin/pycasbin" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/pycasbin?label=PyCasbin&style=social">
</a>
<a href="https://github.com/casbin/Casbin.NET" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/Casbin.NET?label=Casbin.NET&style=social">
</a>
</li><li class="footer__item">
<a href="https://github.com/casbin/casbin-cpp" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/casbin-cpp?label=Casbin-CPP&style=social">
</a>
<a href="https://github.com/casbin/casbin-rs" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/casbin-rs?label=Casbin-RS&style=social">
</a>
</li><li class="footer__item">
<a href="https://twitter.com/casbinHQ" target="_blank">
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/casbinHQ?style=social">
</a>
</li><li class="footer__item">
<script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?2c0ffc6f8d49e98d964d59d7aa4cbf34";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script>
</li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://www.apache.org/" rel="noopener noreferrer" class="footerLogoLink_BH7S"><img src="/img/asf_logo_wide_small.png" alt="Apache Software Foundation" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/asf_logo_wide_small.png" alt="Apache Software Foundation" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU"></a></div><div class="footer__copyright">Copyright © 2026 The Apache Software Foundation. Apache Casbin, Casbin, and the project logo are trademarks of The Apache Software Foundation.</div></div></div></footer></div>
</body>
</html>