DJANGO CAS客户端
django-cas-client的Python项目详细描述
django cas
django的cas客户端。此库需要django 1.5或更高版本,以及python 2.6、2.7、3.4
当前版本:1.5.1
这是the original的K-State's fork,包括several additional features以及从
安装
此项目在pypi上注册为django cas客户端。安装:
pip install django-cas-client==1.5.1
添加到url
将登录和注销模式添加到主url conf.
import cas.views
...
# CAS
path('admin/login/', cas.views.login, name='login'),
path('admin/logout/', cas.views.logout, name='logout'),
添加中间件和设置
设置您的cas服务器url
CAS_SERVER_URL = "https://signin.somehwere/cas/"
将CA添加到中间件类
'cas.middleware.CASMiddleware',
添加身份验证后端
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'cas.backends.CASBackend',
)
如何贡献
分支的分支。将拉取请求提交回kstateome:develop
。
运行测试
所有的prs必须通过单元测试。在本地运行测试:
pip install -r requirements-dev.txt
python run_tests.py
cas的settings.py
如果要使用cas,请将以下内容添加到中间件中:
MIDDLEWARE_CLASSES = (
'cas.middleware.CASMiddleware',
)
将这些添加到settings.py
以使用cas后端:
CAS_SERVER_URL = "Your Cas Server"
CAS_LOGOUT_COMPLETELY = True
CAS_PROVIDE_URL_TO_LOGOUT = True
附加功能
此分叉包含原始中未找到的其他功能:
- cas响应回调
- cas网关
- 代理票(来自Edmund Crewe)
代理主机
>您需要设置中间件来处理代理的使用。添加要客户端使用的域的设置PROXY_DOMAIN
。然后添加
MIDDLEWARE_CLASSES = (
'cas.middleware.ProxyMiddleware',
)
此中间件需要在djangocommon
中间件之前添加。
cas响应回调
要存储来自cas的数据,请创建一个回调函数,该函数接受来自
ProxyValidate响应。可以有多个回调,它们可以生活在任何地方。定义
settings.py
中的回调:
CAS_RESPONSE_CALLBACKS = (
'path.to.module.callbackfunction',
'anotherpath.to.module.callbackfunction2',
)
并在path/to/module.py
:
def callbackfunction(tree):
username = tree[0][0].text
user, user_created = User.objects.get_or_create(username=username)
profile, created = user.get_profile()
profile.email = tree[0][1].text
profile.position = tree[0][2].text
profile.save()
cas网关
要使用cas网关功能,请首先在“设置”中启用它。试图不显式地使用它 启用此设置将导致配置不正确:
CAS_GATEWAY = True
然后,将gateway
装饰器添加到视图:
from cas.decorators import gateway
@gateway()
def foo(request):
#stuff
return render(request, 'foo/bar.html')
自定义禁止页
要显示自定义禁止页,请将CAS_CUSTOM_FORBIDDEN
设置为path.to.some_view
。否则,
将返回泛型HttpResponseForbidden
。
需要SSL登录
要强制服务url始终以https为目标,请将CAS_FORCE_SSL_SERVICE_URL
设置为True
。
首次登录时自动创建用户
默认情况下,将在第一次成功的cas身份验证时创建存根用户记录
在响应中使用用户名。如果不需要设置此行为
CAS_AUTO_CREATE_USER
到False
。
代理票证
这个叉子还包括 Edmund Crewe's proxy ticket patch。
您可以通过设置:
CAS_PGT_FETCH_WAIT = False