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实现ftp客户端示例分享
Feb 17 Python
跟老齐学Python之有点简约的元组
Sep 24 Python
Python操作使用MySQL数据库的实例代码
May 25 Python
浅谈django开发者模式中的autoreload是如何实现的
Aug 18 Python
mac PyCharm添加Python解释器及添加package路径的方法
Oct 29 Python
在Python中给Nan值更改为0的方法
Oct 30 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
python cv2截取不规则区域图片实例
Dec 21 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
利用PyTorch实现VGG16教程
Jun 24 Python
python实现简单的井字棋
May 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远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
linux php mysql数据库备份实现代码
2009/03/10 PHP
php数据库抽象层 PDO
2011/05/07 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
用cssText批量修改样式
2009/08/29 Javascript
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
jquery简单实现鼠标经过导航条改变背景图
2013/12/17 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
[01:02:05]LGD vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
5种Python单例模式的实现方式
2016/01/14 Python
Swift中的协议(protocol)学习教程
2016/07/08 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
自荐信格式的六要素
2013/09/21 职场文书
语文教育专业推荐信范文
2013/11/25 职场文书
冰淇淋店创业计划书范文
2013/12/27 职场文书
三分钟自我介绍演讲稿
2014/08/21 职场文书
2014年无财产无子女离婚协议书范本
2014/10/09 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
Python自动化实战之接口请求的实现
2022/05/30 Python