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的Tornado框架中的日志的方法
May 02 Python
python基于右递归解决八皇后问题的方法
May 25 Python
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
Python实现进程同步和通信的方法
Jan 02 Python
儿童编程python入门
May 08 Python
python七夕浪漫表白源码
Apr 05 Python
python生成器推导式用法简单示例
Oct 08 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
Oct 17 Python
如何使用python传入不确定个数参数
Feb 18 Python
django model object序列化实例
Mar 13 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
Apr 07 Python
Django与数据库交互的实现
Jun 03 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 和 MYSQL
2006/10/09 PHP
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
php获取远程图片并下载保存到本地的方法分析
2016/10/08 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
php服务器的系统详解
2019/10/12 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
Python魔法方法详解
2019/02/13 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
如何利用python发送邮件
2020/09/26 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
优秀的自荐信要注意哪些
2014/01/03 职场文书
八年级音乐教学反思
2014/01/09 职场文书
政治思想表现评语
2014/05/04 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
护理自荐信
2019/05/14 职场文书
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers