|
1 |
| -# jCasbin |
2 |
| -An authorization library that supports access control models like ACL, RBAC, ABAC in JAVA. This project is a JAVA port of the original Golang [Casbin](https://github.com/casbin/casbin). |
| 1 | +jCasbin |
| 2 | +==== |
| 3 | + |
| 4 | +[](https://travis-ci.org/casbin/jcasbin) |
| 5 | +[](https://github.com/casbin/jcasbin/releases/latest) |
| 6 | +[](https://gitter.im/casbin/lobby) |
| 7 | +[](http://www.patreon.com/yangluo) |
| 8 | +[](https://sourcegraph.com/github.com/casbin/jcasbin?badge) |
| 9 | + |
| 10 | +**Note**: This project is a Java port of the original Golang [Casbin](https://github.com/casbin/casbin). |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | +jCasbin is a powerful and efficient open-source access control library for Java projects. It provides support for enforcing authorization based on various [access control models](https://en.wikipedia.org/wiki/Computer_security_model). |
| 15 | + |
| 16 | +## Supported models |
| 17 | + |
| 18 | +1. [**ACL (Access Control List)**](https://en.wikipedia.org/wiki/Access_control_list) |
| 19 | +2. **ACL with [superuser](https://en.wikipedia.org/wiki/Superuser)** |
| 20 | +3. **ACL without users**: especially useful for systems that don't have authentication or user log-ins. |
| 21 | +3. **ACL without resources**: some scenarios may target for a type of resources instead of an individual resource by using permissions like ``write-article``, ``read-log``. It doesn't control the access to a specific article or log. |
| 22 | +4. **[RBAC (Role-Based Access Control)](https://en.wikipedia.org/wiki/Role-based_access_control)** |
| 23 | +5. **RBAC with resource roles**: both users and resources can have roles (or groups) at the same time. |
| 24 | +6. **RBAC with domains/tenants**: users can have different role sets for different domains/tenants. |
| 25 | +7. **[ABAC (Attribute-Based Access Control)](https://en.wikipedia.org/wiki/Attribute-Based_Access_Control)**: syntax sugar like ``resource.Owner`` can be used to get the attribute for a resource. |
| 26 | +8. **[RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer)**: supports paths like ``/res/*``, ``/res/:id`` and HTTP methods like ``GET``, ``POST``, ``PUT``, ``DELETE``. |
| 27 | +9. **Deny-override**: both allow and deny authorizations are supported, deny overrides the allow. |
| 28 | +10. **Priority**: the policy rules can be prioritized like firewall rules. |
| 29 | + |
| 30 | +## License |
| 31 | + |
| 32 | +This project is licensed under the [Apache 2.0 license](https://github.com/casbin/casbin/blob/master/LICENSE). |
| 33 | + |
| 34 | +## Contact |
| 35 | + |
| 36 | +If you have any issues or feature requests, please contact us. PR is welcomed. |
| 37 | +- https://github.com/casbin/casbin/issues |
| 38 | + |
| 39 | +- Tencent QQ group: [546057381](//shang.qq.com/wpa/qunwpa?idkey=8ac8b91fc97ace3d383d0035f7aa06f7d670fd8e8d4837347354a31c18fac885) |
| 40 | + |
| 41 | +## Donation |
| 42 | + |
| 43 | +[](http://www.patreon.com/yangluo) |
| 44 | + |
| 45 | + |
| 46 | + |
0 commit comments