cas .net 重定向循环_接口测试平台接入企业cas(一)
cas系统简介
提供运营系统的 SSO 和 access control功能。类似百度的UC。
CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。官方网站:https://www.apereo.org/。
CAS 具有以下特点:
开源的企业级单点登录解决方案。
CAS Server 为需要独立部署的 Web 应用。
CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。
从结构上看,CAS 包含两个部分:CAS Server 和 CAS Client。
CAS Server 需要独立部署,主要负责对用户的认证工作;
CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。
Python接入cas示例
一、soc环境
python3.6.9 + django 2.1.7 + django-cas-ng 3.6.0
二、cas服务端
cas 3.5.2 (yale大学开源)
三、配置流程
3.1、settings.py 配置
3.1.1、 配置INSTALLED_APPS:添加django_cas_ng到INSTALLED_APPS
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_cas_ng']
3.1.2、配置MIDDLEWARE:添加django_cas_ng.middleware.CASMiddleware到MIDDLEWARE:
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', '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_ng.middleware.CASMiddleware']
3.1.3、配置AUTHENTICATION_BACKENDS:添加django_cas_ng.backends.CASBackend到AUTHENTICATION_BACKENDS:
AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', 'django_cas_ng.backends.CASBackend',)
3.1.4、配置CAS服务器URL和CAS协议版本:(咱们的cas是3.5.2 cas_version 需要填写对应的2;当前最新版的版本是3;版本号不能填错,否则无法认证通过)
CAS_SERVER_URL = 'https://test-cas.xxx.com/cas/'
CAS_VERSION = '2'
CAS_REDIRECT_URL = "/server/api/portmonitor/gpb/" #认证通过后跳转到的目录
以上是settings.py中的配置
#####################################################################
下面是代码中的配置
3.1.5、配置 mysite/urls.py:
from django.contrib import adminfrom django.urls import pathimport django_cas_ng.viewsfrom . import viewsurlpatterns = [ path('', views.index, name='index'), path('admin/', admin.site.urls), path('accounts/login', django_cas_ng.views.LoginView.as_view(), name='cas_ng_login'), path('accounts/logout', django_cas_ng.views.LogoutView.as_view(), name='cas_ng_logout'),]
3.1.6、mysite / views.py
创建一个名为的新文件mysite/views.py并实现index方法。
演示视图将使用检查用户身份验证request.user.is_authenticated。如果通过身份验证,它将从以下位置获取登录的用户名 request.user.username
from django.httpimport HttpResponsedef index(request): if request.user.is_authenticated: ##使用request对象可以做权限控制 return HttpResponse('<p>Welcome to <a href="https://djangocas.dev">django-cas-nga>.p><p>You logged in as <strong>%sstrong>.p><p><a href="/accounts/logout">Logouta> p>' % request.user) else: return HttpResponse('<p>Welcome to <a href="https://djangocas.dev">django-cas-nga>.p><p><a href="/accounts/login">Login<
四、生成数据库
只需要直接执行 migrate 就可以了,我默认用的sqlite3数据库
$ python manage.py migrateOperations to perform: Apply all migrations: admin, auth, contenttypes, django_cas_ng, sessionsRunning migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying django_cas_ng.0001_initial... OK Applying sessions.0001_initial... OK
可以登陆数据库检查新生成的表:一共新增6张表
sqlite3 db.sqlite3root@xxx:/apps/soc_test# sqlite3 db.sqlite3SQLite version 3.22.0 2018-01-22 18:45:57Enter ".help" for usage hints.sqlite> .tablesauth_group django_admin_log auth_group_permissions django_cas_ng_proxygrantingticketauth_permission django_cas_ng_sessionticket auth_user django_content_type auth_user_groups django_migrations auth_user_user_permissions django_session
五、运行项目测试
$ python manage.py runserver 0.0.0.0:80Performing system checks.........Django version 2.1.7, using settings 'mysite.settings'Starting development server at http://ip:80/Quit the server with CONTROL-C.
cas .net 重定向循环_接口测试平台接入企业cas(一)相关推荐
- Linux 搭建NodeBB社区,搭建CAS登录认证平台,实现Nodebb接入企业CAS认证(一)
一,搭建Nodebb社区 1,安装编译环境nodejs,npm安装后版本号如下(同时得安装redis, git常用开发软件): 2,下载nodebb代码 git clone git://github. ...
- unittest 多个测试文件只开一次浏览器_接口测试平台代码实现75: 多接口用例15
根据我们上一节最后的投票. 引入unittest框架 碾压了第一种.其实我个人也偏向这个.因为我尝试过很多,但是唯独没有引入unittest在接口测试平台中.所以借此机会,也想挑战一下,涨点经验. 请 ...
- html留言板代码_接口测试平台代码实现19.首页优化
按照最近俩天 小伙伴的反馈激烈程度,本节课准备把首页添加一个非常有用户黏性的一个功能.公司内的各个超链接传送门! 新来的公司的小伙伴经常会因为找不到各个平台/文档的地址而发懵.老员工跨部门工作的时候也 ...
- Linux 搭建NodeBB社区,搭建CAS登录认证平台,实现Nodebb接入企业CAS认证(二)
上编文章已经实现nodebb,cas的搭建,这个文章就是如何实现nodebb接入cas认证 一,Nodebb的插件开发,实现对cas的接入 1,下载cas接入插件, GitHub - ld000/no ...
- 接口测试用例设计思路_接口测试平台设计思路10:成品总览白盒模块
白盒测试平台的开发,我们要首先思考四件事: 我们对白盒测试手动测试到底会还是不会. 我们要做几种开发语言代码的测试 重点是主要用来管理-运行-报告,还是用来自动生成相关用例 这个事情到底值不值的去做, ...
- html div分钟刷新一次啊代码_接口测试平台代码实现57首页重构5
本节我们接着开发首页, 主要内容是 让左侧的请求记录和右侧的请求模块 联动起来. 具体联动需求: 右侧请求一次之后,左侧生成记录 点击左侧记录,右侧则会显示这次记录的请求数据 我们本节课的内容是想办法 ...
- ride上点击用例不能显示edit信息_接口测试平台代码实现61: 多接口用例1
终于又序更上了,原谅最近作者几天事情不断. 按照我们之前的计划,需要迅速开启很重要的核心多用例接口. 首先,我们要确定,这个功能的大体设计. 就放在在我们的页面 用例库 中: 所以也就是我们很久之前就 ...
- 请求到后台百分号被删除原因_接口测试平台代码实现85: 全局请求头1
本节开始要制作一些次要功能,但是也是非常实用的.比如项目内的全局请求头. 首先看我们的前端页面,这个全局请求头的按钮: 我的设计是呢,点击后,出现一个弹层,这个弹层里除了保存/取消按钮 标题外.要有一 ...
- html调后台接口_接口测试平台代码实现62: 多接口用例2
好了,最近水了好多期,终于要写点代码了. 本节内容,我们搞定这个多接口的大用例 列表相关吧,难度基本为0,都是我们之前用到过的. 出现bug或者建议的 小伙伴可以直接留言或进微信群,但是可惜的是微信群 ...
最新文章
- 安装Exchange2013,FMS服务无法达到启动状态
- 如何学好3D游戏引擎编程《转自3D游戏引擎网》
- java实现进程管理,Java调用批处理或可执行文件和Runtime、Process类实现Java版进程管理器...
- 电信联通三联手 “事实婚姻”还是临时取暖?
- cgminer linux cpu,Ubuntu Kylin中编译运行cgminer挖矿软件
- fastweixin v1.3.0 发布,极速微信公众号开发框架
- 前端学习(778):随机数方法
- javascript数组去重方法性能测试比较
- repeater使用1
- 2013年1月12日学习内容
- java系列5:如何使用创建的类
- idea设置主题路径
- h3csyslog_H3C-syslog配置命令
- 保护眼睛——设置WIN7和XP 窗体、Chrome、IE网页背景颜色
- 吞食天地2蜀汉英雄传1.5版图文攻略
- 嵌入式系统基础——Unbuntu的初步使用
- 偏微分 python_基于Python求解偏微分方程的有限差分法.doc
- Http request传输图片和附属信息(old)
- 电脑桌面云便签怎么通过便签快捷键锁屏加密?
- 2022工作中遇到问题一
热门文章
- lua打开浏览器并加载网页_Lua访问网页
- 人机协作机器人发展趋势_发那科童梁:机器人化不是时髦!有效的人机协作投资回报率更高...
- linux下sqlmap安装教程,(转)Sqlmap官网下载与安装教程[windows/linux版本]
- 启动项 mysql命令大全_mysql常用命令
- C++基础16-类和对象之联编,重写,虚析构
- 错误之data_insertt() takes 1 positional argument but 2 were given解决方法
- Pytest参数选项自由执行测试用例详解(二)
- node中间件KOA函数
- 超文本css样式换行
- Icon+启动图尺寸