1.关于CAS SSO单点登录框架源码分析
1.了解单点登录 需要源码
SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口.
SSO 的体系中有下面三种角色:
1) User(多个)
2) Web 应用(多个)
3) SSO 认证中心(一个)
2.SSO 实现包含以下三个原则
1) 所有的登录都在 SSO 认证中心进行。
2) SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的用户.
3) SSO 认证中心和所有的 Web 应用建立一种信任关系.
3.了解单点登录体系结构
1) CAS Server 负责完成对用户信息的认证,需要单独部署,CAS Server 会处理用户名/密码 等凭证(Credentials).
2) CAS Client 部署在客户端,当有对本地 Web 应用受保护资源的访问请求,并且需要对请 求方进行身份认证,重定向到 CAS Server 进行认证.
4.CAS SSO单点登录可以不依赖于cookie跨域的解决方案
不依赖于cookie跨域是比较有优势的,假如我们在京东商城上登录一次,在京东商城上其实还有很多的站点,点击其他站点以后是直接可以使用而无需重新登录,我们可以很清楚的看到,里面的域名都是不一样的,如果用传统的方案可能会出现cookie跨域的问题,解决起来比较麻烦。
5.CAS SSO单点登录官网:
https://www.apereo.org/projects/cas
6.CAS 源代码下载地址
进入源码下载地址,当前的git库是正在维护的CAS,也是最新的CAS
CAS最新版本可能存在不稳定的情况,所以这种下载方式我们也不建议使用,可以点击releases查看不同的版本,下载使用比较稳定的版本。
7.通过下载稳定版本的方式下载cas的相关源码包,如下:
直接选择4.2.1的稳定代码即可
8.我们项目中的版本版本使用maven apereo远程库去下载
通过远程maven库下载cas-server-webapp的war包,步骤如下:
(一)访问Maven地址: http://mvnrepository.com/,并搜索cas-server-webapp
(二)点击cas-server-webapp链接地址,下载最新的版本
9.下载cas-client-core的jar包,如下:
10.CAS document文档,cas使用spring mvc开发,支持的协议,支持的开发语言等
CAS的架构图:
Cas的安装要求(我们项目实例使用server版本4.2.7,clent版本是3.3):
需要源码
到此结束!!
原文地址:https://www.cnblogs.com/Liuzhijuan/p/15394100.html
- WinDbg调试.NET程序入门
- Release编译模式下,事件是否会引起内存泄漏问题初步研究 疑问:
- 10种简单的Java性能优化学习
- 巧用枚举类型,实现项目的多语言切换
- 影响Java调用性能有哪些因素
- 如何为可扩展系统进行Java Socket编程
- 如何使用Windows卷影拷贝服务恢复文件和文件夹
- .net字符串数组查找方式效率比较
- 使用Ring Buffer构建高性能的文件写入程序
- 一行代码调用实现带字段选取+条件判断+排序+分页功能的增强ORM框架
- PDF.NET数据开发框架实体类操作实例
- 利用Burp Suite对OWASP Juice Shop进行渗透测试
- Java同步问题面试知识学习
- Android UI控件系列:LinearLayout(线性布局)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 爬虫抓取博客园前10页标题带有Python关键字(不区分大小写)的文章
- Python爬虫抓取唐诗宋词
- ImportError: /lib64/libm.so.6: version `GLIBC_2.23' not found (required by /usr/local/python37/lib/p
- 数据分析与数据挖掘 - 02基础操练
- 数据分析与数据挖掘 - 03智能对话
- 【深度揭秘】为什么很多语言的数组下标是从0开始的?
- Go 每日一库之 email
- Go 每日一库之 dig
- Go 每日一库之 gojsonq
- Go 每日一库之 message-bus
- Go 每日一库之 watermill
- Go 每日一库之 wire
- Go 每日一库之 mergo
- Go 每日一库之 copier
- Struts2第一天Struts2的概述,Struts2的入门,Struts2常见的配置、Struts2的Action的编写