什么是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 授权服务器简易搭建的更多相关文章

  1. CAS学习笔记五:SpringBoot自动/手动配置方式集成CAS单点登出

    本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式实现CAS客户端登出及单点登出. 本文基于<CAS学习笔记三:SpringBoot自动/手动配置方式集成C ...

  2. Java web与web gis学习笔记(一)——Tomcat环境搭建

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

  3. Aurora学习笔记连载一:仿真平台搭建

    由于公司项目需要,需要学习Aurora协议,才有了这样的连载学习笔记,也算是对自己学习的一份记录吧. 对于Aurora是什么,大家自行百度. 当然,Kevin也在此先提醒大家,本套学习笔记不是你想学就 ...

  4. CAS学习笔记二:CAS单点登录流程

    背景 由于公司项目甲方众多,各甲方为了统一登录用户体系实现单点登录(SSO)开始要求各乙方项目对接其搭建的CAS单点登录服务,有段时间对CAS的流程很迷,各厂商还有基于CAS进行二次开发的情况,所以对 ...

  5. CAS学习笔记(三)—— SERVER登录后用户信息的返回

    一旦CAS SERVER验证成功后,我们就会跳转到客户端中去.跳转到客户端去后,大家想一想,客户端总要获取用户信息吧,不然客户端是怎么知道登录的是哪个用户.那么客户端要怎么获取用户信息呢? 其实验证成 ...

  6. CAS学习笔记三:SpringBoot自动配置与手动配置过滤器方式集成CAS客户端

    本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式集成CAS客户端. 需要提前搭建 CAS 服务端,参考 https://www.cnblogs.com/hell ...

  7. JDBC 学习笔记(十)—— 使用 JDBC 搭建一个简易的 ORM 框架

    1. 数据映射 当我们获取到 ResultSet 之后,显然这个不是我们想要的数据结构. 数据库中的每一个表,在 Java 代码中,一定会有一个类与之对应,例如: package com.gerrar ...

  8. cocos2dx游戏开发——微信打飞机学习笔记(三)——WelcomeScene的搭建

    一.场景与层的关系: cocos2dx的框架可以说主要由导演,场景,层,精灵来构成: 1.其中导演,意如其名,就是操控整个游戏的一个单例,管理着整个游戏. 2.场景就像电影的一幕剧情,所以说,懂得如何 ...

  9. cocos2dx游戏开发——微信打飞机学习笔记(七)——Enemy的搭建

    一.文件创建~ Enemy.h Enemy.cpp 二.How to do? 由于我是已经完成成个游戏的功能,所以我会将游戏中enemy所需要的很多功能基本上都先考虑到了,如果大家自己在做的时候也许没 ...

随机推荐

  1. 使用dumi生成react组件库文档并发布到github pages

    周末两天玩了下号称西湖区东半球最牛逼的react文档站点生成工具dumi,顺带结合github pages生成了react-uni-comps文档站, 一套弄下来,感觉真香,现在还只是浅尝,高级的特性 ...

  2. git 新建分支并切换到该分支_Git 从master拉取代码创建新分支 并且再将修改合并到master...

    开发过程中会从master主分支copy到另一个开发分支: 1.切换到master分支 git  checkout  master 2.获取最新的代码 git pull origin master 3 ...

  3. A Child's History of England.17

    CHAPTER 6 ENGLAND UNDER HAROLD HAREFOOT, HARDICANUTE, AND EDWARD THE CONFESSOR Canute left three son ...

  4. applogs流量数据项目学习

    一. 项目介绍 项目的功能主要是面向App开发商提供App使用情况的统计服务 主要是基于用户启动app的统计分析,app只要启动就会上报一条日志记录 (启动日志),当然也会有其他的日志比如说页面访问日 ...

  5. 【Netty】最透彻的Netty原理架构解析

    这可能是目前最透彻的Netty原理架构解析 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件.整体架构,知其然且知其所以然,希望给大家在实际开发实践.学习开源项目方面提供参考. ...

  6. 转 Android中Activity的启动模式(LaunchMode)和使用场景

    转载请注明出处:http://blog.csdn.net/sinat_14849739/article/details/78072401本文出自Shawpoo的专栏我的简书:简书 一.为什么需要启动模 ...

  7. Linux lvm在线扩容

    1.查看磁盘空间 [root@bgd-mysql3 ~]# fdisk -l Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sector ...

  8. RAC中常见的高级用法-过滤

    filter      过滤信号,使用它可以获取满足条件的信号. - (void)filter { //只有当我们文本框内容长度大于5才想要获取文本框的内容 [[_passWord.rac_textS ...

  9. shell脚本计算Linux网卡流量

    本文介绍了计算linux网卡流量的一个shell脚本,一个通过固定间隔时间获取ifconfig eth0 的字节值而计算出网卡流量的方法,有需要的朋友参考下. 使用shell脚本计算Linux网卡流量 ...

  10. maven管理本地jar包

    maven作为包管理工具,好处不必多说.但是有些情况,比如需要引入第三方包,如快递鸟,支付宝,微信等jar包(当然有可能直接提供maven依赖),如果直接下载到本地之后,怎么整合到自己的maven工程 ...