CAS学习笔记一:CAS 授权服务器简易搭建
什么是CAS
CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。
简单来说,就是开源的企业级单点登录(SSO)服务。
CAS Server 搭建思路
CAS 官方提供了一种使用 Apereo CAS WAR Overlay Template 的方式(开发人员通过 克隆模板仓库https://github.com/apereo/cas-overlay-template ,修改Maven/Gradle配置引入官方发布War包依赖,构建时将变更的文件更新到新的War中)简化了开发人员二次开发复杂性,提高了开发效率。
对于简单部署一个CAS 服务端,就可以直接下载 Maven 仓库中的War包进行部署,本文亦使用此方法部署 5.3.16
版本的CAS 服务端。如需定制开发,请使用官方模板仓库进行开发。
CAS 服务端 5.x 使用 JDK 1.8,6.x 开始使用 JDK 11,由于公司项目在用1.8,就用 CAS 5.x 最新版本 5.3.16 了
下载Maven仓库War包
https://repo1.maven.org/maven2/org/apereo/cas/cas-server-webapp-tomcat/5.3.16/
下载 Tomcat 9
https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.56/bin/
使用 Tomcat 9 部署 CAS server
将Tomcat 9 安装包 与 CAS war包上传到Linux服务器,本文上传到 /opt 目录下。省略 JDK 安装步骤。
#解压tomcat
tar zxf apache-tomcat-9.0.56.tar.gz
#解压CAS War包到 tomcat 部署目录下
unzip -q cas-server-webapp-tomcat-5.3.16.war -d apache-tomcat-9.0.56/webapps/cas
#启动tomcat
cd apache-tomcat-9.0.56/bin
./startup.sh
#查看日志
cd ..
tail -f logs/catalina.out
出现Ready后,Ctrl+C停止日志输出控制台,访问服务器IP:8080,查看tomcat是否启动成功
访问 Cas Server,服务器IP:8080/cas
默认用户名与密码在配置文件application.properties中(CAS 服务端是用SpringBoot实现的)
#打开配置文件
vim /opt/apache-tomcat-9.0.56/webapps/cas/WEB-INF/classes/application.properties
#Shift + G 跳转到最后,能看到casuser是用户名,Mellon是密码
输入用户名与密码,登录
提示登录成功,到此一个最基础的CAS服务端搭建完成了,接下来将开启 http 协议支持,这是用来应用服务授权时使用的。
调整 CAS 服务端配置
默认CAS 服务端将 http 协议的客户端都认为是不合法的,需要修改配置文件 HTTPSandIMAPS-10000001.json
添加 http协议支持。
cd /opt/apache-tomcat-9.0.56/webapps/cas/WEB-INF/classes/services
vim HTTPSandIMAPS-10000001.json
添加绿框部分文字 |http
,添加 http 协议支持。
修改完成保存退出,重启 tomcat 就可以使用应用服务进行单点登录测试了。
本文同步于本人博客园(hellxz.cnblogs.com) 与 CSDN(https://blog.csdn.net/u012586326)
CAS学习笔记一:CAS 授权服务器简易搭建的更多相关文章
- CAS学习笔记五:SpringBoot自动/手动配置方式集成CAS单点登出
本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式实现CAS客户端登出及单点登出. 本文基于<CAS学习笔记三:SpringBoot自动/手动配置方式集成C ...
- Java web与web gis学习笔记(一)——Tomcat环境搭建
系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...
- Aurora学习笔记连载一:仿真平台搭建
由于公司项目需要,需要学习Aurora协议,才有了这样的连载学习笔记,也算是对自己学习的一份记录吧. 对于Aurora是什么,大家自行百度. 当然,Kevin也在此先提醒大家,本套学习笔记不是你想学就 ...
- CAS学习笔记二:CAS单点登录流程
背景 由于公司项目甲方众多,各甲方为了统一登录用户体系实现单点登录(SSO)开始要求各乙方项目对接其搭建的CAS单点登录服务,有段时间对CAS的流程很迷,各厂商还有基于CAS进行二次开发的情况,所以对 ...
- CAS学习笔记(三)—— SERVER登录后用户信息的返回
一旦CAS SERVER验证成功后,我们就会跳转到客户端中去.跳转到客户端去后,大家想一想,客户端总要获取用户信息吧,不然客户端是怎么知道登录的是哪个用户.那么客户端要怎么获取用户信息呢? 其实验证成 ...
- CAS学习笔记三:SpringBoot自动配置与手动配置过滤器方式集成CAS客户端
本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式集成CAS客户端. 需要提前搭建 CAS 服务端,参考 https://www.cnblogs.com/hell ...
- JDBC 学习笔记(十)—— 使用 JDBC 搭建一个简易的 ORM 框架
1. 数据映射 当我们获取到 ResultSet 之后,显然这个不是我们想要的数据结构. 数据库中的每一个表,在 Java 代码中,一定会有一个类与之对应,例如: package com.gerrar ...
- cocos2dx游戏开发——微信打飞机学习笔记(三)——WelcomeScene的搭建
一.场景与层的关系: cocos2dx的框架可以说主要由导演,场景,层,精灵来构成: 1.其中导演,意如其名,就是操控整个游戏的一个单例,管理着整个游戏. 2.场景就像电影的一幕剧情,所以说,懂得如何 ...
- cocos2dx游戏开发——微信打飞机学习笔记(七)——Enemy的搭建
一.文件创建~ Enemy.h Enemy.cpp 二.How to do? 由于我是已经完成成个游戏的功能,所以我会将游戏中enemy所需要的很多功能基本上都先考虑到了,如果大家自己在做的时候也许没 ...
随机推荐
- C/C++ Qt StandardItemModel 数据模型应用
QStandardItemModel 是标准的以项数据为单位的基于M/V模型的一种标准数据管理方式,Model/View 是Qt中的一种数据编排结构,其中Model代表模型,View代表视图,视图是显 ...
- cmd到指定目录并执行命令 mysql到bin目录并执行命令 cmd bat进入指定文件夹中并执行命令
其实就一条命令:(保存为bat格式,注意:有两个and希腊字母 && )cmd /k "cd /d Your ProjectPath&&Your CMD co ...
- Netty之Channel*
Netty之Channel* 本文内容主要参考**<<Netty In Action>> ** 和Netty的文档和源码,偏笔记向. 先简略了解一下ChannelPipelin ...
- Flink(二)【架构原理,组件,提交流程】
目录 一.运行架构 1.架构 2.组件 二.核心概念 TaskManager . Slots Parallelism(并行度) Task .Subtask Operator Chains(任务链) E ...
- 大数据学习day25------spark08-----1. 读取数据库的形式创建DataFrame 2. Parquet格式的数据源 3. Orc格式的数据源 4.spark_sql整合hive 5.在IDEA中编写spark程序(用来操作hive) 6. SQL风格和DSL风格以及RDD的形式计算连续登陆三天的用户
1. 读取数据库的形式创建DataFrame DataFrameFromJDBC object DataFrameFromJDBC { def main(args: Array[String]): U ...
- react动态添加样式:style和className
react开发过程中,经常会需要动态向元素内添加样式style或className,那么应该如何动态添加呢??? 一.react向元素内,动态添加style 例如:有一个DIV元素, 需要动态添加一个 ...
- 容器之分类与各种测试(四)——unordered_set和unordered_map
关于set和map的区别前面已经说过,这里仅是用hashtable将其实现,所以不做过多说明,直接看程序 unordered_set #include<stdexcept> #includ ...
- 使用 ACE 库框架在 UNIX 中开发高性能并发应用
使用 ACE 库框架在 UNIX 中开发高性能并发应用来源:developerWorks 中国 作者:Arpan Sen ACE 开放源码工具包可以帮助开发人员创建健壮的可移植多线程应用程序.本文讨论 ...
- SpringBoot 整合 spring security oauth2 jwt完整示例 附源码
废话不说直接进入主题(假设您已对spring security.oauth2.jwt技术的了解,不懂的自行搜索了解) 依赖版本 springboot 2.1.5.RELEASE spring-secu ...
- 实时数据同步inotify+rsync
inotify inotify是一个实时监控服务,他能实时监控服务器中的目录的变化,发现目录中变化后,在配合rsync服务推送到备份服务器上 inotify要求内核要在2.6.13或之上,通过noti ...