Tomcat+CAS以及cas的mysql数据库的验证
Tomcat+cas服务器的搭建可参考文档:
CAS服务搭建(ubuntu 10.04)
http://xiaolin0199.iteye.com/blog/683759
cas的mysql数据库验证可参考文档:
测试CAS服务器(二)
http://xiaolin0199.iteye.com/blog/686229
django-cas的应用
官方文档:https://bitbucket.org/cpcc/django-cas/overview
操作过程
1.下载django-cas包:https://bitbucket.org/cpcc/django-cas/get/tip.tar.gz
2.安装
解压后直接运行$sudo python setup.py install或将djang-cas包放在项目根目录下
3.settings.py的设置
在settings.py中加入
MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django_cas.middleware.CASMiddleware', 'django.middleware.doc.XViewMiddleware', ) AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', 'django_cas.backends.CASBackend', )
另外还有几个配置变量,如CAS_SERVER_URL是必须的,是你的cas服务器url地址,
CAS_SERVER_URL = 'http://sso.some.edu/cas/'
4. urls.py设置
urls.py中加入:
(r'^accounts/login/$', 'django_cas.views.login'), (r'^accounts/logout/$', 'django_cas.views.logout'),
这样你的用户验证就会有cas服务器完成
实现原理
写道
在用户进行登录时,会调用django-cas的登录函数,函数会用url跳转去CAS服务器上进行用户信息验证
当验证成功时,会返回用户名,django会根据该用户名去自己的auth_user表中查找用户,若没有用户,则新创建
当用户再次登录,就不经过CAS了,还是按原django的验证中间件,通过cookie+session判断
当验证成功时,会返回用户名,django会根据该用户名去自己的auth_user表中查找用户,若没有用户,则新创建
当用户再次登录,就不经过CAS了,还是按原django的验证中间件,通过cookie+session判断
结论
写道
就django-cas该项目来说,并不能很好的实现多网站单点登录,同时登录,同时注销
但django与CAS服务器配合,是一定能实现单点登录的
而且不止是django,其他的如asp,java servlets,都是能实现的
在网上看见过一个例子,两个servlets能通过CAS实现同步登录
但django与CAS服务器配合,是一定能实现单点登录的
而且不止是django,其他的如asp,java servlets,都是能实现的
在网上看见过一个例子,两个servlets能通过CAS实现同步登录