Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 11 additions & 64 deletions content/docs/basics/tutorial.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,113 +13,60 @@ Note that certain tutorials address Casbin's model architecture and apply univer

### Our Papers

- [PML: An Interpreter-Based Access Control Policy Language for Web Services](https://arxiv.org/abs/1903.09756)
- [PERM: Streamlining Cloud Authorization With Flexible and Scalable Policy Enforcement](https://ieeexplore.ieee.org/abstract/document/11095782)

This paper provides an in-depth exploration of Casbin's design. If you reference Casbin/PML in academic work, please cite using the following BibTex:
This paper provides an in-depth exploration of Casbin's design. If you reference Casbin in academic work, please cite using the following BibTex:

```bibtex
@article{luo2019pml,
title={PML: An Interpreter-Based Access Control Policy Language for Web Services},
@article{luo2025perm,
title={PERM: Streamlining Cloud Authorization With Flexible and Scalable Policy Enforcement},
author={Luo, Yang and Shen, Qingni and Wu, Zhonghai},
journal={arXiv preprint arXiv:1903.09756},
year={2019}
journal={IEEE Transactions on Information Forensics and Security},
year={2025},
volume={20},
number={7},
pages={8481-8496},
publisher={IEEE}
}
```

- [Access Control Policy Specification Language Based on Metamodel (in Chinese)](https://www.jos.org.cn/jos/article/abstract/5624)

This extended paper appears in Journal of Software. Citations in various formats (Refworks, EndNote, etc.) are available at: [(another version) Access Control Policy Specification Language Based on Metamodel (in Chinese)](https://kns.cnki.net/kcms/detail/Detail.aspx?dbname=CJFDLAST2020&filename=RJXB202002012&v=)

### Videos

- [A Secure Vault - implementing authorization middleware with Casbin - JuniorDevSG](https://www.youtube.com/watch?v=OTT84oplR9o)
- [Sharing user permissions in a micro-service architecture based on Casbin (in Russian)](https://www.youtube.com/watch?v=Z5dUxH4PqYM)
- [Nest.js - Casbin RESTful RBAC authorization middleware](https://www.youtube.com/watch?v=mWlPNrCgVdE)
- [Gin Tutorial Chapter 10: Learn Casbin basic models in 30 minutes (in Chinese)](https://www.bilibili.com/video/BV1qz4y167XP)
- [Gin Tutorial Chapter 11: Coding, API and custom function in Casbin (in Chinese)](https://www.bilibili.com/video/BV13r4y1M7AC)
- [Gin + Casbin: Learning Permissions in Action (in Chinese)](https://www.jtthink.com/course/132)
- [jCasbin Basics: A simple RBAC example (in Chinese)](https://www.jtthink.com/course/play/2706)
- [Golang's RBAC based on Casbin (in Chinese)](https://www.bilibili.com/video/BV1Kf4y1U7iJ)
- [Learning Gin + Casbin (1): Opening & Overview (in Chinese)](https://www.bilibili.com/video/BV1bp4y1a7je)
- [ThinkPHP 5.1 + Casbin: Introduction (in Chinese)](https://www.bilibili.com/video/BV1kz4y1Z7vd)
- [ThinkPHP 5.1 + Casbin: RBAC authorization (in Chinese)](https://www.bilibili.com/video/BV1A541187M4)
- [ThinkPHP 5.1 + Casbin: RESTful & Middleware (in Chinese)](https://www.bilibili.com/video/BV1uk4y117up)
- [Quick Start for PHP-Casbin (in Chinese)](https://www.bilibili.com/video/BV1dK4y1L7xy)
- [ThinkPHP 5.1 + Casbin: How to use custom matching functions (in Chinese)](https://www.bilibili.com/video/BV1dq4y1Z78g)
- [Webman + Casbin: How to use Webman Casbin Plugin (in Chinese)](https://www.bilibili.com/video/BV1X34y1Q7ZH)

### PERM Meta-Model (Policy, Effect, Request, Matchers)

- [Understanding Casbin with different Access Control Model Configurations](https://medium.com/wesionary-team/understanding-casbin-with-different-access-control-model-configurations-faebc60f6da5)
- [Modeling Authorization with PERM in Casbin](https://narendraj9.github.io/posts/generalized-authz.html)
- [Designing a Flexible Permissions System with Casbin](https://medium.com/silo-blog/designing-a-flexible-permissions-system-with-casbin-f5d97fef17b8)
- [Authorize with Access Control Lists](https://medium.com/pragmatic-programmers/authorize-with-access-control-lists-92fbec57a920)
- [Access control with PERM and Casbin (in Persian)](https://virgool.io/@a3dho3yn/%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%A8%D8%A7-casbin-%D9%88-perm-metamodel-sm3vb9c2cowg)
- [RBAC? ABAC? .. PERM! New Way of Authorization for Cloud-Based Web Services and Apps (in Russian)](https://habr.com/ru/articles/539778/)
- [Practice & Examples of Flexible Authorization Using Casbin & PERM (in Russian)](https://habr.com/ru/articles/540454/)
- [Permission management with Casbin (in Chinese)](http://www.cnblogs.com/wang_yb/archive/2018/11/20/9987397.html)
- [Analysis of Casbin (in Chinese)](https://www.cnblogs.com/xiaohunshi/p/10372881.html)
- [Design of System Permissions (in Chinese)](https://github.com/xizhibei/blog/issues/101)
- [Casbin: A Permission Engine (in Chinese)](https://github.com/xizhibei/blog/issues/102)
- [Implementing ABAC with Casbin (in Chinese)](https://www.cnblogs.com/studyzy/p/11380736.html)
- [Source code analysis of Casbin (in Chinese)](https://www.cnblogs.com/yjf512/p/12200206.html)
- [Permission evaluation with Casbin (in Chinese)](https://cloud.tencent.com/developer/article/1534674)
- [Casbin: Library of the day for Go (in Chinese)](https://juejin.cn/post/6844904191257739277)

<Tabs groupId="langs" items={['Go', 'Java', 'Node.js', 'PHP', '.NET', 'Rust', 'Lua']} persist>
<Tab value="Go">

### HTTP & RESTful

- [Basic Role-Based HTTP Authorization in Go with Casbin](https://zupzup.org/casbin-http-role-auth) (or [Chinese translation](https://studygolang.com/articles/12323))

### Watcher

- [RBAC Distributed Synchronization via Casbin Watcher (in Chinese)](https://hongker.github.io/2021/02/19/golang-rbac-watcher/)

### Beego

- [Using Casbin with Beego: 1. Get started and test (in Chinese)](https://blog.csdn.net/hotqin888/article/details/78460385)
- [Using Casbin with Beego: 2. Policy storage (in Chinese)](https://blog.csdn.net/hotqin888/article/details/78571240)
- [Using Casbin with Beego: 3. Policy query (in Chinese)](https://blog.csdn.net/hotqin888/article/details/78992250)
- [Using Casbin with Beego: 4. Policy update (in Chinese)](https://blog.csdn.net/hotqin888/article/details/80032538)
- [Using Casbin with Beego: 5. Policy update (continued) (in Chinese)](https://blog.csdn.net/hotqin888/article/details/80092285)
- [Basic Role-Based HTTP Authorization in Go with Casbin](https://zupzup.org/casbin-http-role-auth)

### Gin

- [Authorization in Golang Projects using Casbin](https://medium.com/wesionary-team/authorization-in-golang-projects-using-casbin-f8fad744dae5)
- [Tutorial: Integrate Gin with Casbin](https://dev.to/maxwellhertz/tutorial-integrate-gin-with-cabsin-56m0)
- [Policy enforcements on K8s with Pipeline](https://outshift.cisco.com/blog/policy-enforcement-k8s)
- [Authentication and authorization in Gin application with JWT and Casbin](https://medium.com/@tienbm90/authentication-and-authorization-in-gin-application-with-jwt-and-casbin-a56bbbdec90b)
- [Backend API with Go: 1. Authentication based on JWT (in Chinese)](https://studygolang.com/topics/6998)
- [Backend API with Go: 2. Authorization based on Casbin (in Chinese)](https://studygolang.com/topics/6999)
- [Using Go's authorization library Casbin with Gin and GORM (in Japanese)](https://web.archive.org/web/20211207015104/https://www.zaneli.com/blog/20181203)

### Echo

- [Web authorization with Casbin](http://klotzandrew.com/blog/authorization-with-casbin)

### Iris

- [Iris + Casbin: Practice for permission management (in Chinese)](https://zxc0328.github.io/posts-cn/casbin-iris/)
- [Learning iris + Casbin from scratch](https://learnku.com/articles/41416)

### Argo CD

- [Organizational RBAC in Argo CD with Casbin](https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/)

### GShark

- [GShark: Scan for sensitive information in Github easily and effectively (in Chinese)](https://mp.weixin.qq.com/s?__biz=MzI3MjA3MTY3Mw==&mid=2247483770&idx=1&sn=9f02c2803e1c946e8c23b16ff3eba757&chksm=eb396fecdc4ee6fa2f378e846f354f45acf6e6f540cfd54190e9353df47c7707e3a2aadf714f&token=115330850&lang=zh_CN#rd)

</Tab>
<Tab value="Java">

### SpringBoot

- [jCasbin: a more light-weight permission management solution (in Chinese)](https://blog.csdn.net/waynelee0809/article/details/85702551)
- [Integrating jCasbin with JFinal (in Chinese)](http://www.jfinal.com/share/842)

</Tab>
<Tab value="Node.js">

Expand Down
24 changes: 1 addition & 23 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 6 additions & 1 deletion src/app/blog/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@ export const metadata: Metadata = {
type BlogPage = InferPageType<typeof blogSource>;

export default function Page() {
const pages: BlogPage[] = blogSource.getPages();
const pages: BlogPage[] = [...blogSource.getPages()].sort((a, b) => {
// Sort by date in descending order (newest first)
const dateA = a.data.date ? new Date(a.data.date).getTime() : 0;
const dateB = b.data.date ? new Date(b.data.date).getTime() : 0;
return dateB - dateA;
});

return (
<>
Expand Down
Loading