DJANGO CAS客户端

django-cas-client的Python项目详细描述


django cas

django的cas客户端。此库需要django 1.5或更高版本,以及python 2.6、2.7、3.4

当前版本:1.5.1

这是the originalK-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_USERFalse

代理票证

这个叉子还包括 Edmund Crewe's proxy ticket patch

您可以通过设置:

CAS_PGT_FETCH_WAIT = False

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么我不能从ObjectInputStream读取ArrayList?   linux如何设置java时区?   java是一种拥有系统的方法。出来在循环中打印不同的内容?   scala Apache Spark:在Java中有效地使用mapPartitions   java Maven对com的依赖性。白天利用率   java将多个数据映射到单个id的表的正式名称是什么?   java如何在Android应用程序中隐藏FulterWave API键   SeleniumWebDriverJava:如何使用行号和列号单击表中的特定单元格   java Springbatch将数据从写入程序或处理器传递到RestConroller   java在Android TextView中一次换行两行,并带有跨距   java如何使这个rxjava zip并行运行?   JAVAutil。登录中。记录器不尊重java。util。登录中。数量   java无法将参数发布到服务器   java Eclipse:在自定义透视图/视图的状态行上显示作业进度   java在调用findAll()时,找到了多个具有给定标识符的行,但如果我使用findById()遍历所有条目,则可以工作;   Java中的正则表达式问题   Java中的实例变量   java如何在安卓中逐字搜索   java如何计算百分比