django-cas
记一点django框架下使用cas过程
单点登录(cas)具体原理与过程参考:https://blog.csdn.net/javaloveiphone/article/details/52439613
代码具体最初来源地址: https://github.com/kstateome/django-cas
直接将开源代码放入我的项目后根据说明配置,发现该模块程序调不通,debug后做出一些改动,具体配置如下:
在django全局配置文件setting.py添加内容:
MIDDLEWARE_CLASSES追加
cas.middleware.CASMiddleware
全局变量添加:
CAS_SERVER_URL = http://xxx/uap (cas server url) CAS_LOGOUT_COMPLETELY = True CAS_PROVIDE_URL_TO_LOGOUT = True CAS_VERSION = '3' CAS_IGNORE_REFERER = True CAS_REDIRECT_URL = http://xxx/redirect (需要跳转到的应用url) CAS_RESPONSE_CALLBACKS = False GLOBAL_CSRF_CHECK = False CAS_LOGOUT_COMPLETELY = True CAS_SERVER_URL_LOGOUT = http://xxx/logout (退出登录是需要调用的cas server url接口)AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend','cas.backends.CASBackend', )
INSTALLED_APPS中追加:
cas
在urls.py中添加
url(r'^accounts/login/$', 'winstore.cas.views.login'), url(r'^accounts/logout/$', 'winstore.cas.views.logout'), url(r'^redirect$', 'winstore.web.views.redirect_view'),
在views.py中添加
@csrf_exempt def redirect_view(request):try:username = request.session["username"]except Exception as e:return HttpResponseRedirect('xxx/#/login')else:if username == "admin":return HttpResponseRedirect(xxx/#/redirect')
需要添加内容完毕,具体内容需要对应自己的项目
现在分析cas client具体程序的调用过程:
1.程序入口:cas/views.py/def login(request, ...
最重要的代码是
user = auth.authenticate(ticket=ticket, service=service)
2.
authenticate程序位于backends.py的class CASBackend类中
只要搞清楚这两步就可以很整个cas client客户端程序就很清晰了,其中调用
_internal_verify_cas
函数打开url过程我怎么也调不通,于是自己改了代码,我会把自己更改后的代码上传
django-cas相关推荐
- Python3.5 Django1.10 Scrapy1.2 Ubuntu16.04 HTML5
1.Python3.5 1. 虚拟环境 venv python3.4 创建虚拟环境(py3.4自带venv,不需要安装) Ubuntu 16.4 python3.5升级python3.6 sudo a ...
- 配置CAS应用客户端
本文介绍JavaEE,Django, Php的CAS客户端配置方法. CAS客户端可以在这里找到,其中有些是官方维护,有些是社区维护.你也可以根据CAS协议编写一个客户端.关于CAS登陆验证流程请参阅 ...
- Django - ORM - 事务, 乐观锁, 悲观锁
事务 概念 Transaction 事务:一个最小的不可再分的工作单元:通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元) 一个完整的业务需要批量的DML(inser ...
- cas .net 重定向循环_接口测试平台接入企业cas(一)
cas系统简介 提供运营系统的 SSO 和 access control功能.类似百度的UC. CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS ...
- [原创]django+ldap+memcache实现单点登录+统一认证
前言 由于公司内部的系统越来越多,为了方便用户使用,通过django进行了单点登录和统一认证的尝试,目前实现了django项目的单点登录和非django项目的统一认证,中间波折挺多,涉及的技术包括dj ...
- 面经 - OpenStack(Docker、Django、K8S、SDN)知识点
文章目录 概述 OpenStack 虚拟化 kvm 网络虚拟化 基本技术 Memcached Etcd 消息队列 概念 交换机类型 缺点 重复投递问题 顺序投递问题 restful api Horiz ...
- python学习04--django集成CAS客户端
python学习04--django集成CAS客户端 前言 一.CAS客户端 1.新建一个Django项目,前面已讲, 2.安装依赖 3.配置Django_cas_ng,在settings文件中 4. ...
- Django学习之路(一)--初识django
1.先创建虚拟环境 为什么要创建虚拟环境呢? 你有两个项目同时进行,一个需要pytnon3.9和Django3.x版本的,一个需要python3.7和Django2.x版本的,不进行环境隔离的话,运行 ...
- django自带的分页功能
django自带的分页功能 django中自带的分页功能有缺陷,但是也是一种思路,所以在下做一个整理,方便以后使用,还有服务各位小伙伴. django视图部分的代码.(注释才是重点) from dja ...
- django正反向查询
django正反向查询 当我们的表存在外键想要从一找多的时候该怎么查找,当我们从多找一的时候又应该怎么查找. 一找多 首先我们要创建一个项目,在项目的model.py中创建两个模型. from dja ...
最新文章
- linux top 命令信息解释
- SAP 主生产计划(MPS)
- php基础系列之 数据的存储和读取
- 搜索题,留着以后慢慢刷
- 华为和新华三OSPF单区域配置
- SpringMVC系列(四)使用 POJO 对象绑定请求参数值
- MyCat基于MySQL实现读写分离
- 软件验收报告文档模版
- HTML代码实现简易购物车-web前端教程
- 计算机英语拼读法,常用计算机英语词汇:DVD
- 科学计算机r系数的操作,R语言实现Fleiss’ Kappa系数处理多个观察者一致性检验...
- HL340(usb转串口线)驱动
- 在linux运行php文件
- C++ 完全不完全资源导引
- oracle ndb,NDB语法 - ivaneeo's blog - BlogJava
- 登录模板源码 : bootstrap风格
- 请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化。模块“vpmc”启动失败。未能启动虚拟机。
- 美股历史行情数据 API 接口
- oracle事件的特点,ORACLE 深入解析10053事件(1)
- Cannot autogenerate id of type java.lang.Integer for entity
热门文章
- win11兼容性_win11系统软件兼容性测试
- 《excel2007视频教程》 学习笔记一 基础
- 郑大计算机应用基础试题及答案,郑州大学远程教育计算机应用基础在线测试题库.doc...
- Python图片相册批处理器的设计与实现批量添加图片水印、批量命名等功能
- 如何完全卸载windows优化大师
- 修改网站地址栏小图标
- MATLAB菜单选项在哪儿,matlab菜单之file菜单
- 联想电脑自带记事本软件如何设置提醒
- 计算机技术如何影响现代教育,浅谈信息技术时代对现代教育的影响
- AP微积分考试备考重点