记一点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相关推荐

  1. 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 ...

  2. 配置CAS应用客户端

    本文介绍JavaEE,Django, Php的CAS客户端配置方法. CAS客户端可以在这里找到,其中有些是官方维护,有些是社区维护.你也可以根据CAS协议编写一个客户端.关于CAS登陆验证流程请参阅 ...

  3. Django - ORM - 事务, 乐观锁, 悲观锁

    事务 概念 Transaction 事务:一个最小的不可再分的工作单元:通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元) 一个完整的业务需要批量的DML(inser ...

  4. cas .net 重定向循环_接口测试平台接入企业cas(一)

    cas系统简介 提供运营系统的 SSO 和 access control功能.类似百度的UC. CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS ...

  5. [原创]django+ldap+memcache实现单点登录+统一认证

    前言 由于公司内部的系统越来越多,为了方便用户使用,通过django进行了单点登录和统一认证的尝试,目前实现了django项目的单点登录和非django项目的统一认证,中间波折挺多,涉及的技术包括dj ...

  6. 面经 - OpenStack(Docker、Django、K8S、SDN)知识点

    文章目录 概述 OpenStack 虚拟化 kvm 网络虚拟化 基本技术 Memcached Etcd 消息队列 概念 交换机类型 缺点 重复投递问题 顺序投递问题 restful api Horiz ...

  7. python学习04--django集成CAS客户端

    python学习04--django集成CAS客户端 前言 一.CAS客户端 1.新建一个Django项目,前面已讲, 2.安装依赖 3.配置Django_cas_ng,在settings文件中 4. ...

  8. Django学习之路(一)--初识django

    1.先创建虚拟环境 为什么要创建虚拟环境呢? 你有两个项目同时进行,一个需要pytnon3.9和Django3.x版本的,一个需要python3.7和Django2.x版本的,不进行环境隔离的话,运行 ...

  9. django自带的分页功能

    django自带的分页功能 django中自带的分页功能有缺陷,但是也是一种思路,所以在下做一个整理,方便以后使用,还有服务各位小伙伴. django视图部分的代码.(注释才是重点) from dja ...

  10. django正反向查询

    django正反向查询 当我们的表存在外键想要从一找多的时候该怎么查找,当我们从多找一的时候又应该怎么查找. 一找多 首先我们要创建一个项目,在项目的model.py中创建两个模型. from dja ...

最新文章

  1. linux top 命令信息解释
  2. SAP 主生产计划(MPS)
  3. php基础系列之 数据的存储和读取
  4. 搜索题,留着以后慢慢刷
  5. 华为和新华三OSPF单区域配置
  6. SpringMVC系列(四)使用 POJO 对象绑定请求参数值
  7. MyCat基于MySQL实现读写分离
  8. 软件验收报告文档模版
  9. HTML代码实现简易购物车-web前端教程
  10. 计算机英语拼读法,常用计算机英语词汇:DVD
  11. 科学计算机r系数的操作,R语言实现Fleiss’ Kappa系数处理多个观察者一致性检验...
  12. HL340(usb转串口线)驱动
  13. 在linux运行php文件
  14. C++ 完全不完全资源导引
  15. oracle ndb,NDB语法 - ivaneeo's blog - BlogJava
  16. 登录模板源码 : bootstrap风格
  17. 请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化。模块“vpmc”启动失败。未能启动虚拟机。
  18. 美股历史行情数据 API 接口
  19. oracle事件的特点,ORACLE 深入解析10053事件(1)
  20. Cannot autogenerate id of type java.lang.Integer for entity

热门文章

  1. win11兼容性_win11系统软件兼容性测试
  2. 《excel2007视频教程》 学习笔记一 基础
  3. 郑大计算机应用基础试题及答案,郑州大学远程教育计算机应用基础在线测试题库.doc...
  4. Python图片相册批处理器的设计与实现批量添加图片水印、批量命名等功能
  5. 如何完全卸载windows优化大师
  6. 修改网站地址栏小图标
  7. MATLAB菜单选项在哪儿,matlab菜单之file菜单
  8. 联想电脑自带记事本软件如何设置提醒
  9. 计算机技术如何影响现代教育,浅谈信息技术时代对现代教育的影响
  10. AP微积分考试备考重点