java cas 文档_概述 · casbin开发文档 · 看云

Casbin是一个强大的开源访问控制框架,支持多种访问控制模型和多种编程语言,如Go、Java、Node.js等。它提供了RBAC、ABAC等功能,并允许自定义请求格式。Casbin还支持多层角色继承、超级用户以及路径匹配操作符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 概述

Casbin是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型。

## Casbin支持以下编程语言:

| [![golang](https://img.kancloud.cn/13/0c/130c8531535dbdc6f4be309dce1abe6b_480x251.png)](https://github.com/casbin/casbin) | [![java](https://img.kancloud.cn/46/fc/46fc68e8a0136c852657994ef40ff827_480x240.png)](https://github.com/casbin/jcasbin) | [![nodejs](https://img.kancloud.cn/98/42/9842a8bc5fc27d8f17d8afe2ffc9889d_480x293.png)](https://github.com/casbin/node-casbin) | [![php](https://img.kancloud.cn/3f/9d/3f9d70791f9b93fbac94bbb2c29b7045_480x259.png)](https://github.com/php-casbin/php-casbin) |

| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |

| [Casbin](https://github.com/casbin/casbin) | [jCasbin](https://github.com/casbin/jcasbin) | [node-Casbin](https://github.com/casbin/node-casbin) | [PHP-Casbin](https://github.com/php-casbin/php-casbin) |

| 可用于生产环境 | 可用于生产环境 | 可用于生产环境 | 可用于生产环境 |

| [![python](https://img.kancloud.cn/ff/55/ff55d26d87394b8ba223f8df128ecc0e_480x142.png)](https://github.com/casbin/pycasbin) | [![dotnet](https://img.kancloud.cn/00/b3/00b3c6736e191082f69f4370d0bac6cf_480x144.png)](https://github.com/casbin-net/Casbin.NET) | [![delphi](https://img.kancloud.cn/eb/df/ebdf5a5ce40ad4864edaf4049e9bc1b5_480x160.png)](https://github.com/casbin4d/Casbin4D) | [![rust](https://img.kancloud.cn/da/9a/da9ad056ea518af320e765a050fbb04f_480x240.png)](https://github.com/casbin/casbin-rs) |

| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |

| [PyCasbin](https://github.com/casbin/pycasbin) | [Casbin.NET](https://github.com/casbin-net/Casbin.NET) | [Casbin4D](https://github.com/casbin4d/Casbin4D) | [Casbin-RS](https://github.com/casbin/casbin-rs) |

| production-ready | production-ready | experimental | WIP |

## Feature set for different languages

| Feature | Go | Java | Node.js | PHP | Python | C# | Delphi |

| --- | --- | --- | --- | --- | --- | --- | --- |

| Enforcement | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

| RBAC | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

| ABAC | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

| Adapter | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

| Management API | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

| RBAC API | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

| Filtered Adapter | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ |

| Watcher | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |

| Role Manager | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |

| Multi-Threading | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |

我们一直致力于让Casbin在不同的编程语言中拥有相同的特性。 但是现实总是不完美的。 上方的表格展示了当前的进度。 Watcher或者Role Manager的✅ 仅代表Casbin对该编程语言有接口。 而是否实现了watcher或者role manager则是另一回事了。

## Casbin是什么?

Casbin可以做到:

1. 支持自定义请求的格式,默认的请求格式为`{subject, object, action}`。

2. 具有访问控制模型model和策略policy两个核心概念。

3. 支持RBAC中的多层角色继承,不止主体可以有角色,资源也可以具有角色。

4. 支持超级用户,如`root`或`Administrator`,超级用户可以不受授权策略的约束访问任意资源。

5. 支持多种内置的操作符,如`keyMatch`,方便对路径式的资源进行管理,如`/foo/bar`可以映射到`/foo*`

Casbin不能做到:

1. 身份认证 authentication(即验证用户的用户名、密码),casbin只负责访问控制。应该有其他专门的组件负责身份认证,然后由casbin进行访问控制,二者是相互配合的关系。

2. 管理用户列表或角色列表。 Casbin 认为由项目自身来管理用户、角色列表更为合适, 用户通常有他们的密码,但是 Casbin 的设计思想并不是把它作为一个存储密码的容器。 而是存储RBAC方案中用户和角色之间的映射关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值