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内置函数:lambda、map、filter简单介绍
Nov 16 Python
python自动发送邮件脚本
Jun 20 Python
破解安装Pycharm的方法
Oct 19 Python
Django unittest 设置跳过某些case的方法
Dec 26 Python
对Python3之进程池与回调函数的实例详解
Jan 22 Python
python用for循环求和的方法总结
Jul 08 Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 Python
关于Python 中的时间处理包datetime和arrow的方法详解
Mar 19 Python
python 使用三引号时容易犯的小错误
Oct 21 Python
python爬虫多次请求超时的几种重试方法(6种)
Dec 01 Python
python实现控制台输出颜色
Mar 02 Python
pycharm代码删除恢复的方法
Jun 26 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
新版PHP极大的增强功能和性能
2006/10/09 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
2019/03/25 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
javascript 全角转换实现代码
2009/07/17 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
javascript实现可键盘控制的抽奖系统
2016/03/10 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
vue全局自定义指令-元素拖拽的实现代码
2019/04/14 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
解决python大批量读写.doc文件的问题
2018/05/08 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
2019/08/22 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
手工社团活动方案
2014/02/17 职场文书
会走路的树教学反思
2014/02/20 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
庆祝教师节主持词
2015/07/06 职场文书
健康教育主题班会
2015/08/14 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书