Django混合访问控制系统
项目描述
HACS(混合访问控制系统)
由Django提供全功能高级访问控制系统。HACS提供企业级标准的授权系统,同时覆盖IAM(身份和访问管理)。
特性
Django多站点:支持使用单个配置文件(settings)运行多个站点,这是一个动态过程,因此您可以添加无限数量的站点。
- 防火墙/访问控制:为您的应用程序提供完整的防火墙功能,与IP表几乎相同。
自定义URL模式:适用于站点、用户和组的规则。
HTTP方法过滤器:适用于站点、用户和组的规则。
维护模式:仅适用于站点的规则。
正则表达式URL黑名单:适用于站点、用户和组的规则。
正则表达式URL白名单:适用于站点、用户和组的规则。
高级授权:(即将推出)致力于成为Django Guardian和Django Authority的组合,但肯定可以从这些中汲取灵感。
审计跟踪:(即将推出)这是IAM(身份和访问管理)的一部分
安装
安装django-hacs,只需使用pip或easy_install
~$ pip install django-hacs or ~$ easy_install django-hacs
安装django-hacs的最新(开发)版本
~$ git clone https://github.com/nazrulworld/django-hybrid-access-control-system.git django-hacs ~$ cd django-hacs ~$ python setup.py install
配置
在INSTALLED_APPS中添加django-hacs
INSTALLED_APPS = ( ................., 'django.contrib.contentypes', 'django.contrib.sites', 'hacs' )
添加来自django-hacs的中间件类,并确保已添加django.contrib.sites.middleware.CurrentSiteMiddleware
MIDDLEWARE_CLASSES = [ ............................ 'django.contrib.sites.middleware.CurrentSiteMiddleware', 'hacs.middleware.DynamicRouteMiddleware', 'hacs.middleware.FirewallMiddleware', ]
可选:定义可写位置,生成urlconf模块将存储的位置,默认位置是hacs/generated的路径
HACS_GENERATED_URLCONF_DIR = "your desired directory location"
初始化django-hacs环境,这是起点
~$ python manage.py init_hacs >>> provide your information
依赖关系
Django 1.9.x或更高版本
文档
完整用户文档可在“docs”文件夹中找到,也可以在http://django-hacs.readthedocs.org/在线获取
路由规则管理
我们可以有两种方法来做这件事。 Django Admin 1. 确保已安装admin应用,并将hacs.urls添加到urlconf中。例如 url(r'^hacs/', include(('hacs.urls', 'hacs'), namespace='hacs')) 2. 访问http://{host}/admin/hacs/。从这里您可以管理(添加、编辑、删除)。更多详情请参阅文档。
Django管理工具 1. 从https://github.com/nazrulworld/django-hybrid-access-control-system/blob/master/sample/routes-minimal.json下载示例路由文件 2. 填写所需信息。您可以直接复制粘贴,并填写您所需的内容,只需确保是有效的json,并且所有条目都在一个列表下。 3. 保存json文件,并记住位置 4. 在终端中,cd到manage.py
~$ python manage.py import_route -S <path to json file>
部署django-hacs
您可以选择遵循上述说明并创建新的路由方案。
- 如果您已经在本地有准备就绪的路由方案。
从本地导出路由方案~$ python manage.py export_route -d <输出文件名及完整路径。例如/tmp/my-routes.json>
现在从生产服务器终端导入路由方案~$ python manage.py import_route -S <json文件路径>
贡献
支持
如果您遇到问题,请告知我们。我们有一个位于:Django HACS<connect2nazrul@gmail.com>的邮件列表
贡献者
Md Nazrul Islam,email2nazrul@gmail.com
变更日志
1.0a2
初始发布。