cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器

2023-05-16

在开始之前先介绍一下CAS

官网地址:https://www.apereo.org/
Github地址:https://github.com/apereo/cas

介绍

CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。

特点

  1. 开源的企业级单点登录解决方案。
  2. CAS Server 为需要独立部署的 Web 应用。
  3. CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。
  4. CAS属于Apache 2.0许可证,允许代码修改,再发布(作为开源或商业软件)。

原理与协议

  1. 用户每次发请请求,CAS Client 会分析请求中是否包含service ticket
  2. 如果没有重定向到指定好的CAS Server登录地址,并传递service(也就是访问的目的资源地址,方便登录成功后转回该地址)
  3. 用户输入认证信息,成功后CAS Server随机生成一个相当长度,唯一,不可伪造的service ticket,并缓存以待将来验证,重定向到service地址
  4. 为客户端设置一个TGC(Ticket Granted Cookie),CAS Client 在拿到Service和新产生的Ticket 过后,在与CAS Server 进行身份合适
    以确保Service Ticket的合法性

(好啦,开始进入正文啦)HTTPS配置

因为CAS要求所有的请求都要在一个安全的通道,所以要配置服务端的https。

1.生成服务器的密匙文件 lcs.keystore

keytool -genkey -alias lcs_cas -keyalg RSA -keysize 2048 -validity 36500 -keystore C:/opt/keys/lcs_cas.keystore

参数说明打开cmd,输入结果:
在这里插入图片描述

2.导出证书

keytool -export -alias lcs_cas -storepass 123456 -file C:/opt/keys/lcs_cas.cer -keystore C:/opt/keys/lcs_cas.keystore

在这里插入图片描述在这里插入图片描述在C:/opt/keys文件夹下可以看到

在这里插入图片描述

3.导入证书导入到jdk信任库

查看当前JDK版本,必须是 JDK.1.8 以上

注意
1.原来的 $JAVA_HOME/jre/lib/security/cacerts 文件要先删掉,否则会报出java.io.IOException: Keystore was tampered with, or password was incorrect错误.
在这里插入图片描述
2.如果路径有空格或特殊字符,像我上面一样加上引号.

执行命令

keytool -import -alias wolfcode -keystore C:/“Program Files”/Java/jdk1.8.0_152/jre/lib/security/cacerts -file C:/opt/keys/lcs_cas.cer -trustcacerts

运行结果

在这里插入图片描述

使用cas-overlay-template搭建cas服务器

GitHub地址:https://github.com/apereo/cas

在这里插入图片描述
使用步骤:

1.下载或者克隆cas-overlay-template(version:5.2)项目到本地,用Intellji Idea打开项目,下载依赖时间较长,需耐心等待,建议使用国内的镜像.

有个依赖下载很慢或者下载不了cas-server-webapp-tomcat,建议直接下载之后放到本地仓库对应的目录会快点.

https://mvnrepository.com/artifact/org.apereo.cas/cas-server-webapp-tomcat

打开项目后
在这里插入图片描述

可以将pom.xml里的国外仓库换成国内的镜像

2.在项目中添加src/main/java和src/main/resources目录,并将src/main/java设置为代码文件根目录,将src/main/resources设置为资源文件根目录。

在这里插入图片描述

3.将overlays目录下的WEB-INF/classes/目录中的application.properties文件复制到src/main/resources中
在这里插入图片描述

4.将 证书 C:/opt/keys/lcs_cas.keystore 拷贝到resources 目录
在这里插入图片描述

5.修改application.properties文件
在这里插入图片描述
此处为静态的用户名,密码
在这里插入图片描述

6.打开idea命令行,输入命令:build.cmd run

如图显示就是启动成功了
在这里插入图片描述
7.浏览器输入 https://www.lcs.com:8443/cas/login
注:我这边是配置了host文件,如果没有配置host文件的画是https://localhost:8443/cas/login
在这里插入图片描述

不用管,那是因为我们的证书是通过JDK生成的,不是认证机构发布的。

第一次进去会有点慢。跳转完成之后界面。

在这里插入图片描述

输入静态的账号,密码

在这里插入图片描述

登录成功后页面

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器 的相关文章

  • 通过Python将mp4视频文件转为动画gif

    通过Python将mp4视频文件转换为动画gif有几种方法 xff0c 如imageio moviepy Pillow 这里使用imageio 43 opencv进行转换 通过conda创建虚拟环境Python Test xff0c 将终端
  • 关系型数据库种类

    常见主流数据库分类 xff1a DB2 Oracle Informix Sybase SQL Server PostgreSQL mySQL Access数据库 FoxPro数据库 Teradata 1 IBM 的DB2 DB2是IBM著名
  • 非替换元素和替换元素

    元素是文档结构的基础 xff0c 在css里面 xff0c 每个元素生成了包含内容的框 xff08 box xff09 大家都叫 盒子 但是不同的元素显示方式是不同的 xff0c 有占据一整行的 xff0c 有水平一个挨着一个的 比如 xf
  • Kaiming He论文阅读笔记三——Simple Siamese Representation Learning

    Kaiming He大神在2021年发表的Exploring Simple Siamese Representation Learning xff0c 截至目前已经有963的引用 xff0c 今天我们就一起来阅读一下这篇自监督学习论文 Si
  • 从零开始使用Realsense D435i运行VINS-Mono

    从零开始使用Realsense D435i运行VINS Mono 从零开始使用Realsense D435i运行VINS Mono xff08 1 xff09 安装测试librealsense SDK 2 0 xff08 2 xff09 安
  • VINS-Mono关键知识点总结——边缘化marginalization理论和代码详解

    VINS Mono关键知识点总结 边缘化marginalization理论和代码详解 VINS Mono关键知识点总结 边缘化marginalization理论和代码详解1 边缘化理论1 1 为什么要进行边缘化操作 xff1f 1 2 怎样
  • linux安装clang和clang-format

    EPEL网站提供了clang的RPM安装包 xff0c 所以要想在cnetOs安装clang xff0c 首先需要安装EPEL包 xff1a sudo yum install epel release 接下来安装 clang sudo yu
  • docker学习记录(2)——在 Ubuntu 16.04 上升级 Docker CE

    以root用户为例 apt get update apt get remove docker docker engine docker ce docker io y 确保卸载干净 wget qO https get docker com s
  • vins-mobile

    最近项目需求 xff0c 需要在新版ios设备上面配置vins mobile xff0c 但是vins mobile采用oc代码 xff0c 需要将其迁移到swift vins对时间戳要求比较严格 xff0c 原版修改了opencv源码 x
  • ROS入门之话题消息的定义与使用

    1 定义msg文件 xff1a 在catkin ws src learning topic文件下新建msg文件夹并在文件夹下新建Person msg文件 msg文件中代码如下 xff1a string name uint8 sex uint
  • git为什么会有冲突

    看了百度很多回答 xff0c 觉得和实操有点出入 xff0c 记录一下个人理解 结论 xff1a 冲突的产生就是各分支修改的文件版本不一致 xff08 远程冲突同理 xff09 例 xff1a 分支 m 和分支 d 都有一个相同文件 61
  • 视觉SLAM十四讲:运动方程

    SLAM xff1a 同时定位和建图 xff08 Simultaneous Localization and Mapping xff09 希望机器人从未知环境的未知地点出发 xff0c 在运动过程中通过重复观测到的地图特征 xff08 比如
  • NeRF简介及nerf-pytorch的使用

    NeRF全称为Neural Radiance Field 神经辐射场 是2020年发表的论文 xff0c 论文名字为 NeRF Representing Scenes as Neural Radiance Fields for View S
  • SLAM如何定位与建图

    SLAM xff1a 同时定位和建图 xff08 Simultaneous Localization and Mapping xff09 机器人从未知环境中的未知地点出发 xff0c 在运动过程中通过重复观测到的地图特征 xff08 比如
  • OpenMV——串口通信+发送中心位置

    串口通信 OpenMV本质还是一个单片机 xff0c 可以通过调用pyb中的UART使用串口通信 xff0c 注意发送的数据类型为字符串 xff0c 可以通过json dumps 进行字符串转换 span class token keywo
  • liunx下rpm包mysql安装脚本

    目录 文章目录 前言 一 mysqlshell安装脚本 二 xff0c mysql 配置文件 前言 liunx下mysql安装脚本shell脚本 采用的版本时 mysql 5 7 28 xff0c rpm安装方式 shell安装脚本 xff
  • setTimeout与setInterval的坑以及优缺点

    转自 xff1a setTimeout与setInterval的坑以及优缺点 找寻的千寻 博客园 setInterval和setTimeout的缺陷和优势分析 F ZERO F的博客 CSDN博客 settimeout缺点 说到setTim
  • 登录功能app端的建立与实现

    选择使用Android文件的一些主要包装命名搭建 1 Layout存放布局界面的地方 xff0c values是存放图片和颜色 字体等 2 manifests体现层 61 61 代码 3 执行界面打开 lt application lt 登
  • 麻将胡牌算法(遍历+剪枝)

    麻将胡牌算法 xff08 遍历 43 剪枝 xff09 简介麻将胡牌算法及代码1 方法引入2 类型定义2 1 牌定义2 2 牌特征定义 3 计算胡牌3 1 检测十三幺牌型3 2 检测七小对牌型3 3 检测普通牌型胡牌3 3 1 检测所有可能
  • 接口报错Missing grant type

    错误详情 xff1a 原因 xff1a 缺少表单参数 xff1a grant type 但如果传递了该参数依旧报错则说明传递的数据格式有误 xff0c 需要修改数据格式 解决方式 xff1a 第一步 xff1a 设置数据格式 Content

随机推荐