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。

9fb8712773524db66418c9a477925d8a.png

cf0f9067a966ceccd47d977dde6e1ed8.png

2303945b2595dcfae084f256e5eca36f.png

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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机安装rsync服务器配置,虚拟机安装rsync服务器配置

虚拟机安装rsync服务器配置 内容精选换一换在分布式HA部署场景下&#xff0c;ASCS主备节点通过共享盘实现数据同步。本章节指导用户将ASCS主节点的数据盘绑定给ASCS备节点并为ASCS主备节点绑定浮动IP。已在SAP ASCS主备节点之间进行过相互的SSH跳转操作。绑定共享盘创建浮动IP并…

程序包android.support.annotation不存在_efcore技巧贴也许有你不知道的使用技巧

前言.net 环境近些年也算是稳步发展。在开发的过程中&#xff0c;与数据库打交道是必不可少的。早期的开发者都是DbHelper一撸到底&#xff0c;到现在的各种各样的ORM框架大行其道。孰优孰劣谁也说不清楚&#xff0c;文无第一武无第二说的就是这个理。没有什么最好的&#xff0…

centos系统云服务器,Centos系统怎么进云服务器

Centos系统怎么进云服务器 内容精选换一换CentOS 7.5版本操作系统的弹性云服务器默认关闭SELinux功能。通过/etc/selinux/config开启SELinux功能后&#xff0c;在输入密码时&#xff0c;会出现无法登录的问题。如果业务需要开启SELinux 功能&#xff0c;请参照本节内容进行配置…

applicationproperties不是小叶子_为何“砂糖桔”是带着叶子出售?原来其中有着“猫腻”,涨知识了...

大家好&#xff0c;我是你们的好朋友童童&#xff0c;生活中不止有眼前的苟且&#xff0c;还有诗和梦想。童童每天都给大家分享有趣实用的小知识&#xff0c;有什么意见或者建议都可以和童童交流&#xff0c;喜欢我们的可以关注呦。一起和童童来看看今天的小知识吧。随着春节的…

用android制作一个记事本app_用扁平化呈现一个天气APP

作为当下最火的设计风格之一&#xff0c;扁平化设计其实是一种简约的Ul 设计理念&#xff0c;现被广泛应用于图形用户界面上&#xff0c;在图形材料&#xff0c;例如海报&#xff0c;艺术作品&#xff0c;指导文档&#xff0c;各类出版物等方面尤为常用。今天为大家带来了我最近…

hbase hdfs外部表_硬核干货长文!Hbase来了解一下不?

本文公众号来源&#xff1a;互联网侦察 作者&#xff1a;channingbreeze最近我也在入门大数据相关的基础&#xff0c;这篇文章非常通俗易懂讲解了什么是Hbase&#xff0c;推荐阅读&#xff01;等我学所成&#xff0c;我也来写写大数据相关的入门知识。今天&#xff0c;小史的…

springboot自动配置的原理_SpringBoot实战:详解SpringBoot自动配置原理

SpringBoot 自动配置主要通过 EnableAutoConfiguration, Conditional, EnableConfigurationProperties 或者 ConfigurationProperties 等几个注解来进行自动配置完成的。EnableAutoConfiguration 开启自动配置&#xff0c;主要作用就是调用 Spring-Core 包里的 loadFactoryName…

PYTHON之路(八)

http://www.cnblogs.com/alex3714/articles/5227251.htmlSocket语法及相关socket概念A network socket is an endpoint of a connection across a computer network. Today, most communication between computers is based on the Internet Protocol; therefore most network …

kafka消息消费有延迟_RabbitMQ与Kafka的技术差异以及使用注意点

导言作为一个有丰富经验的微服务系统架构师&#xff0c;经常有人问我&#xff0c;“应该选择RabbitMQ还是Kafka&#xff1f;”。基于某些原因&#xff0c; 许多开发者会把这两种技术当做等价的来看待。的确&#xff0c;在一些案例场景下选择RabbitMQ还是Kafka没什么差别&#x…

android 通知_Android 全局消息通知框架实现(类似EventBus)

Github项目地址 https://github.com/532268948/MessageDemo一、介绍随着页面的增多&#xff0c;页面之间的信息交流也会越来越多&#xff0c;比如一个社交类app,你在个人中心修改了自己的个人信息&#xff0c;在动态展示页面你就要通知该页面有关于自己的动态需要更新自己展示在…

2019运管取消了滴滴还查吗_劳务资质2019年取消吗?劳务资质新标准你真的了解吗?...

施工劳务资质2019新标准&#xff01;劳务资质已经取消&#xff1f;不可能&#xff01;虽然这样对于很多企业来说应该比较省事&#xff0c;劳务资质也是越来越受欢迎的&#xff0c;但是企业在办理资质之前一定要将资质标准了解清楚了&#xff0c;新版施工劳务资质仅仅是将专业进…

FFmpeg获取DirectShow设备数据(摄像头,录屏)

这两天研究了FFmpeg获取DirectShow设备数据的方法&#xff0c;在此简单记录一下以作备忘。本文所述的方法主要是对应Windows平台的。 1. 列设备 ffmpeg -list_devices true -f dshow -i dummy命令执行后输出的结果如下&#xff08;注&#xff1a;中文的设备会出现乱码的情…

矩阵的对数运算公式_必修一——对数与对数运算

一、前言(废话)高中数学我们已经学习了二次函数&#xff0c;指数函数(如果不记得的读者可以往前面翻看一下)&#xff0c;这次作者为读者们讲解的是对数与对数运算&#xff0c;对数是什么呢&#xff1f;读者们心里有自己的认知吗&#xff1f;二、对数对数函数是高中阶段学习的一…

分拣外观残缺的机器人_复合机器人AGV+协作机器人的应用领域

什么是复合机器人?复合型机器人是一种集成AGV移动机器人和通用工业机器人两项功能为一身的机器人。在工业领域&#xff0c;通用工业机器人被称为机械臂或者机械手&#xff0c;主要是替代人胳膊的抓取功能;而AGV移动机器人是替代人腿脚的行走功能。复合型机器人则是手脚并用&am…

前端之旅,做一点有回报的事情

本文是参加前端早读课【同说】做的分享 首先感谢情封对前端圈的辛苦付出&#xff0c;能坚持做好一件事真的很不容易&#xff0c;敬佩这份精神。2天前看到早读课的【同说】活动计划&#xff0c;我觉得想法真的很好&#xff0c;忽然情封微信邀请我参与&#xff0c;听到后我是心虚…

差异表达基因变化倍数_10.limma教程|差异表达统计相关理论

点击上方“蓝字”关注我们10.1 Top-Tables 简介limma包提供topTable和decideTests函数概括线性模型结果&#xff0c;进行假设检验&#xff0c;调整p值进行多重检验。结果包括(log2)倍数变化&#xff0c;标准误差&#xff0c;t统计和p值。用于显著性分析的基本统计量是修正t统计…

activemq中怎么知道推送消息是否成功_如何优雅的使用activeMQ 安装、应用、安全认证、持久化...

ActiveMQ安装1. 下载资源ActiveMQ官网&#xff1a;版本说明ActiveMQ5.10.x以上版本必须使用JDK1.8才能正常使用。ActiveMQ5.9.x及以下版本使用JDK1.7即可正常使用。上传至Linux服务器解压安装文件tar -zxf apache-activemq-5.9.0-bin.tar.gz检查权限ls -al apache-activemq-5.9…

DB2表结构DDL脚本导出

db2look是导出DDL语句脚本的命令&#xff0c;以下是对db2look的一个简单介绍。 语法&#xff1a;db2look -d <数据库名> -e -t <表名> -o <文件名>.dml -d&#xff1a;数据库名&#xff0c;这必须指定。 -e:抽取复制数据所需要的DDL文件&#xff0c;此项将生…

套装门安装_室内套装门-油漆工艺

上一期我们分享了套装门的分类和区别&#xff0c;主要从门芯和门皮的结构&#xff0c;主要分为纯实木门、实木复合门、模压门三种。也分享了三种类型的门的区别和基本定义&#xff0c;其中最为关键的是实木复合门&#xff0c;四层结构&#xff0c;其中门芯的填充料可操作空间很…

activiti 工作流_分享:springboot中关于工作流activiti的搭建

概念工作流产品使用activiti的算是比较多了&#xff0c;自带了一套UI界面&#xff0c;可以直接使用&#xff0c;用来设计流程&#xff0c;下面简单总结一下它的步骤&#xff1a;1 设计模型2 发布为流程&#xff0c;一个模型可以发布多个版本的流程3 建立一个流程的实例和实例任…