python django集成cas验证系统


Posted in Python onJuly 14, 2014

加入cas的好处

cas是什么东西就不多说了,简而言之就是单点登陆系统,一处登陆,全网有权限的系统均可以访问.

一次登陆,多个系统互通
cas一般均放置在内网,加入cas验证则必须要求用户走vpn访问,提高安全性;
cas可和域控等系统结合,密码定时过期;
基本认证统一走cas控制,减去开帐号等麻烦事;
django 如何使用cas验证

django 的好处就是支持的包多,网上已经有大神做好的相关的app,直接下载、安装就可以了。

我们要做的就是下载、解压拷贝,略微配置下就可以跑了。

至于安装也是非常简单的,直接解压之后python setup.py install 就可以了。

官方链接:

django-cas

django-cas 如何配置

配置方法

至于配置,熟悉django的同学也都明白,django 是安装app来划分的,可扩展性非常强。

django-cas也是一个app,所以我们按照app的配置方法就配置就可以了。

* 在MIDDLEWARE_CLASSES 中添加CAS的配置: 
 
  'django_cas.middleware.CASMiddleware'
 
* 在AUTHENTICATION_BACKENDS 中添加CAS的配置:
 
  'django_cas.backends.CASBackend'
 
 注意在django1.6 中默认是没有AuthenticationMiddleware 的配置项的,需要手动添加,
 并添加该行配置:
 
  'django.contrib.auth.backends.ModelBackend',
 
* 配置CAS_SERVER_URL: 该地址为cas验证服务器的地址,必须配置

 
完整配置如下

INSTALLED_APPS = (
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
)
 
MIDDLEWARE_CLASSES = (
  'django.contrib.sessions.middleware.SessionMiddleware',
  'django.middleware.common.CommonMiddleware',
  'django.middleware.csrf.CsrfViewMiddleware',
  'django.contrib.auth.middleware.AuthenticationMiddleware',
  'django.contrib.messages.middleware.MessageMiddleware',
  'django.middleware.clickjacking.XFrameOptionsMiddleware',
  'django_cas.middleware.CASMiddleware',
  'django.middleware.doc.XViewMiddleware',
)
 
AUTHENTICATION_BACKENDS = (
  'django.contrib.auth.backends.ModelBackend',
  'django_cas.backends.CASBackend',
)
 
CAS_SERVER_URL = 'http://cas.oxxs.letv.cn:6789/cas/login'

实例

settings.py配置文件

如上配置

views文件

# Create your views here.
from django.http import HttpResponse
 
def login(request):
  if request.user.is_authenticated():
    return HttpResponse('login in at port 9000')
  else:
    return HttpResponse('not login at port 9000')

没啥可说的,只是简单的检测用户是否登陆,然后打印以行字符串。

urls文件

from django.conf.urls import patterns, include, url
from django.contrib import admin
from report_system import views
 
admin.autodiscover()
 
urlpatterns = patterns('',
  # Examples:
  # url(r'^$', 'report_system.views.home', name='home'),
  # url(r'^blog/', include('blog.urls')),
 
  url(r'^$', views.login),
  url(r'^login/$', 'django_cas.views.login'),
  url(r'^logout/$', 'django_cas.views.logout'),
  url(r'^admin/', include(admin.site.urls)),
)

更没有什么东西了,一看都懂的。

测试

我们先登陆下看看:

python django集成cas验证系统

可以看的很明显在访问我们的服务器之后,由于未登陆,所以接着302跳转到
cas服务器进行校验。

python django集成cas验证系统

这个图是紧接着上一个图的,在cas服务器校验之后,如果校验通过,则跳转会我们的
服务器地址,这里似乎是默认跳转回到了/,而我们在/对应的views里面打印了两行
字符,看到确实打印了login in ,则表示我们的登陆是成功的!

注销等其他也都类型,不再多说了。

总结

django_cas 总体的来说还是很方便的,可以非常快速的帮我接入cas验证系统,但

目前的配置似乎还是有点问题的,注销之后再次登陆是无法跳转回我们的服务器地址的,

而是跳转回了cas的地址。 有待继续验证哈。

Python 相关文章推荐
Python实现冒泡,插入,选择排序简单实例
Aug 18 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
解决PyCharm import torch包失败的问题
Oct 13 Python
便捷提取python导入包的属性方法
Oct 15 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
May 27 Python
python3实现二叉树的遍历与递归算法解析(小结)
Jul 03 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
Jul 08 Python
Django的性能优化实现解析
Jul 30 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
Python实现屏幕录制功能的代码
Mar 02 Python
pytorch使用horovod多gpu训练的实现
Sep 09 Python
python 如何调用 dubbo 接口
Sep 24 Python
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
Jul 14 #Python
用python + openpyxl处理excel2007文档思路以及心得
Jul 14 #Python
Python库urllib与urllib2主要区别分析
Jul 13 #Python
Python文件夹与文件的操作实现代码
Jul 13 #Python
分享15个最受欢迎的Python开源框架
Jul 13 #Python
使用 Python 获取 Linux 系统信息的代码
Jul 13 #Python
Python文件操作类操作实例详解
Jul 11 #Python
You might like
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
php检测文本的编码
2015/07/26 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
python执行精确的小数计算方法
2019/01/21 Python
把pandas转换int型为str型的方法
2019/01/29 Python
Django框架模板用法入门教程
2019/11/04 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
测试时代收集的软件测试面试题
2013/09/25 面试题
《去年的树》教学反思
2014/04/11 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
nginx优化的六点方法
2021/03/31 Servers