python3版本中Django-2.1.3+Django-cas-ng-3.6.0 实现单点登录

由于很多业务需要人员登录之后才可以进行对应的操作,不同的操作对应着不同的权限,登录需要通过域账户等方式登录,因此需要通过单点登录来实现第一步登录权限的控制,

在早期曾配置过 Django-1.11 + Django-cas_ng_3.5.9 的单点配置,发现和Django-2.1.3+Django-cas-ng-3.6.0 实现单点登录配置还是有较大的区别,因此在这里做下记录,方便以后的查阅。

 

这里默认跳过模块安装的步骤,直接记录相关的配置信息:

 关于项目 urls.py 的配置

 1 from django.contrib import admin
 2 from django.urls import path, include
 3 from django_cas_ng.views import *
 4 
 5 login_view = LoginView()
 6 logout_view = LogoutView()
 7 callback_view = CallbackView()
 8 login = login_view.get
 9 logout = login_view.get
10 callback = callback_view.get
11 
12 urlpatterns = [
13     #--------------------------django_cas login----------------------------#
14     path('accounts/login/', login, name='cas_ng_login'),
15     path('accounts/logout/', logout, name='cas_ng_logout'),
16     path('accounts/callback/', callback, name='cas_ng_callback'),
17     #---------------------------------------------------------------------#
18     path('admin/', admin.site.urls)
19     path('autovm/', include('AutoVM.urls.view_urls', namespace='autovm'))
20 ]

因为 Django-cas-ng 3.6.0 版本之后,login,logout 都被封装到了类中,所以调用方式也有所区别了。

如果存在ssl 认证错误,可以添加证书认证,或者修改django源码关闭认证

我这边是通过关闭认证来实现

主要修改文件: adapters.py ,在第394行 send 函数下 添加

# close verify

verify = False

关于settings.py 的配置

 1 MIDDLEWARE = [
 2     '...',
 3     'django_cas_ng.middleware.CASMiddleware',
 4 ]
 5 
 6 INSTALLED_APPS = [
 7     '...',
 8     'django_cas_ng',
 9 ]
10 
11 # -----django_cas configuration, need to install django_cas in python before -------#
12 AUTHENTICATION_BACKENDS = (
13     'django.contrib.auth.backends.ModelBackend',
14     'django_cas_ng.backends.CASBackend',
15 )
16 
17 # sso url
18 CAS_SERVR_URL = "https://sso.ex.com"
19 CAS_REDIRECT_URL = "/"

settings 配置中主要记录的是 单点登录相关的配置,仅供参考。

 

posted @ 2019-04-02 14:00  ToFgetU  阅读(1896)  评论(0编辑  收藏  举报