实战:CAS搭建

2023-05-16

一、CAS服务器的搭建

【1】下载CAS服务器的源码,我下载的是CAS Maven WAR Overlay的分支4.2.X版本

注:如若不想了解查找下载地方过程,请直接参见(3)的链接地址

(1)CAS官网地址:https://www.apereo.org/projects/cas


(2)点击后可以找到如下地址:https://github.com/apereo/cas,点击Overlay,

跳转到https://apereo.github.io/cas/5.1.x/installation/Maven-Overlay-Installation.html,

点击下图CAS Maven WAR Overlay进入github:https://github.com/apereo/cas-overlay-template



(3)下载CAS-SERVER:https://github.com/apereo/cas-overlay-template

值得注意的是① 4.1版本与4.2之后的版本配置方式有所不同,所以请下载4.2或之后的版本,本例以4.2版本为例。

② 本人原本想通过idea复制github链接进行直接下载,由于没有SSH配置导致idea无法下载,所以改用下载ZIP方式,如想用命令或idea的github进行直接下载,请自行百度配置方法。


【2】CAS-SERVER配置

解压ZIP包,使用idea打开项目

(1)在WEB-INF/spring-configuration/propertyFileConfigurer.xml中,对cas.properties的位置进行修改。

注:由于在windows下进行实验,所以需要修改cas.properties的所处位置,并将etc下的cas.properties放置在相应位置;如果是linux系统,可直接将文件放置在/etc/cas/config下,无需更改配置文件。

<util:properties id="casProperties" location="file:D:\webserver\cas\cas.properties" />

(2)pom.xml

所下载的项目应该是默认使用war打包,为以防万一还是确保package方式为war

检查pom.xml中<packaging>war</packaging> 是否为该配置

【3】打包

使用 mvn package 命令进行打包,生成war文件,我将其更名为cas.war

【4】tomcat的相关配置

cas默认使用HTTPS请求,所以可以有一下两者结局方案:

(1)修改cas项目配置文件,增加HTTP支持

打开${TOMCAT_HOME}\webapps\cas\WEB-INF\classes\services\HTTPSandIMAPS-10000001.json

修改 "serviceId" :"^(https|imaps)://.*", "serviceId" : "^(https|imaps|http)://.*",


(2)tomcat增加https支持

① 使用keytool创建证书

打开命令行,进入${JAVA_HOME}\bin目录,输入keytool -genkey -alias tomcat -keypass changeit -keyalg RSA -keystore server.keystore


注:口令为changeit,这里的名字与姓氏指的是你的服务器域名,由于我们是本机测试所以使用localhost,其他可不填

此时${JAVA_HOME}\bin下会有一个server.keystore文件

② 导出证书

keytool -export -alias tomcat -keypass changeit -file server.crt -keystore server.keystore

输入密码changeit

③ 将证书导入jre可信任区

keytool -import -alias tomcat -file server.crt -keypass changeit -keystore C:/JDK8/jre/lib/security/cacerts

输入密码changeit

注:这里的路径要与tomcat配置的路径一致

④ 配置tomcat

打开${TOMCAT_HOME}\conf\server.xml,将端口为8443的代码注释解除,并进行如下修改:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"

maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS" keystoreFile="C:/JDK8/bin/server.keystore"

truststoreFile="C:/JDK8/jre/lib/security/cacerts"

keystorePass="changeit"/>

注释代码AJP代码: <!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->

运行startup.bat文件,访问https://localhost:8443,出现下图表示配置完成

【5】部署

将打包的cas.war文件放置在${TOMCAT_HOME}\webapps下,进入${TOMCAT_HOME}\bin下,运行startup.bat文件。

【6】测试

https://localhost:8443/cas/login

用户名:casuser

密码:Mellon


二、CAS客户端的搭建

【1】创建Spring Boot项目,在pom.xml增加cas-client

<dependency>
<groupId>net.unicon.cas</groupId>
<artifactId>cas-client-autoconfig-support</artifactId>
<version>1.5.0-GA</version>
</dependency>

【2】创建一个cas配置类

package com.cssweb.config;
@Configuration
@EnableCasClient
public class CasConfigure extends CasClientConfigurerAdapter {
@Override
public void configureAuthenticationFilter(FilterRegistrationBean authenticationFilter) {
super.configureAuthenticationFilter(authenticationFilter);
authenticationFilter.getInitParameters().put("authenticationRedirectStrategyClass","com.patterncat.CustomAuthRedirectStrategy");
}
}

注:EnableCasClient注解开启cas-client服务

【3】添加一个控制类

package com.cssweb.controller;
@RestController
@RequestMapping("user")
public class UserController {
@RequestMapping("queryUser")
public Map<String, String> queryUser(HttpServletRequest request){
Map<String,String> map = new HashMap<>();
map.put("name", "jcz");
map.put("session", request.getSession.getId())
return map;
}
}

注:访问 ip:port/user/queryUser进行cas测试

【4】配置application.yml

cas:
server-url-prefix=https://localhost:8443/cas/
server-login-url=https://localhost:8443/cas/login
client-host-url=http://localhost:8080
validation-type=cas

【5】测试

浏览器输入:localhost:8080/user/queryUser,会重定向到cas的服务器进行登录



登录后:



三、其他问题

CAS is unavailable

由于本人在cas-server选择使用的是Tomcat增加HTTPS支持这种方式,没有在cas服务器中增加HTTP支持,而cas-client使用的是http,所以当登录CAS后出现报错 CAS is unavailable.因此,我又在cas服务器增加HTTP的支持,详见cas服务器搭建【4】

猜想:若客户端也使用HTTPS,我认为应该无需增加HTTP支持(没有亲测)。


四、Github地址

cas-server:

https://github.com/JIANGCHENZHOU/cas-overlay-template-4.2

cas-client:

https://github.com/JIANGCHENZHOU/cas


五、参考资料

tomcat增加HTTPS支持:

http://www.cnblogs.com/wanghaoyuhappy/p/5267702.html

http://www.cnblogs.com/shipengzhi/articles/2628849.html

springboot-cas-client:

http://blog.csdn.net/liuchuanhong1/article/details/73176603

https://segmentfault.com/a/1190000007278169


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

实战:CAS搭建 的相关文章

随机推荐

  • Centos7下VNC离线安装(个人纪录)

    Centos7下VNC离线安装 个人纪录 1 官网下载rpm包 下载地址 2 执行安装命令 xff1a rpm Uvh tigervnc server 1 8 0 17 el7 x86 64 rpm 3 检查安装情况 xff1a rpm q
  • thinclient_drives

    ubuntu上安装xrdp搭建远程桌面 xff0c 后面远程桌面是可以了 xff0c 但是用户目录下生出了一个thinclient drives文件夹 xff0c 无论是不是root都不能删除 xff0c 如果你有强迫症 xff0c 你就感
  • 解决虚拟机下的ubuntu不能上网的问题

    解决虚拟机下的ubuntu不能上网的问题 2017年09月25日 19 31 39 ray7777777777 阅读数 xff1a 3676 1 打开虚拟机VM 2 右键ubuntu 设置 网络适配器 选中NAT模式 xff1a 用于共享主
  • 云原生|kubernetes|rancher-2.6.4安装部署简明手册

    前言 rancher是一个比较特殊的开源的kubernetes管理工具 xff0c 特殊在它是一个名称为k3s的简单kubernetes集群 xff0c 而该集群是在kubernetes集群内的 rancher还可以在一个裸的仅具有dock
  • Arch安装TIM并解决无法输入中文的常见问题

    花了两个小时的时间解决linux tim无法输入中文的问题 xff0c 最后直接重装系统对比前后配置解决问题 我觉得这种事情应该是十分钟就能搞定的 xff0c 突然想起高中政治老师之前说过的一个问题 一个人的汽车坏了 xff0c 他去修车
  • Arch使用vs code编译调试C/C++

    Arch使用vs code编译调试C C 43 43 Windows平台下无脑下一步编译器就安装好了 xff0c 转到linux平台下基本没有无脑下一步这种操作 xff0c 这个时候就需要手动配置相关程序IDE 43 GCC xff0c 去
  • vim使用coc 补全代码

    coc项目地址 https github com neoclide coc nvim coc安装 使用Vim Plugin安装coc vim 在vimrc中添加插件 34 Use release branch recommend 推荐使用
  • VScode配置task和launch支持C++11

    title VScode配置task和launch date 2022 12 12 20 57 26 cover categories VisualCode tags debug VScode配置task和launch支持C 43 43 1
  • 基于Hi3861芯片的鸿蒙开发(一)

    一 硬件设备 1 润和公司的 大师兄开发板 xff08 Hi3861 海思芯片 xff09 20220801 某宝购买 2 通过usb线 xff08 type c 连接win11 电脑 二 控制面板 打开 设备管理器 查看到连接的是 com
  • 基于Hi3861芯片的鸿蒙开发(二烧录)

    我要烧录的是Py4OH v1 1 0 Beta Hi3861 bin 准备工作 xff1a 1 xff09 下载CH340芯片相关驱动 点击下面地址 xff0c 直接下载windows版 https www wch cn downloads
  • 企业选择私有云服务三大要素

    云服务的出现改变了人们的生活 xff0c 国内的私有云发展也呈现出服务化 平台化等新的趋势 xff0c 面对越来越丰富的私有云服务企业选择私有云服务的要素有三个 xff1a 性价比 便捷度与安全性 xff0c 其中安全又是企业选择私有云服务
  • Matlab一个利用神经网络拟合函数的例子

    代码 xff1a t 61 span class hljs number 0 span span class hljs number 3 9 span span class hljs number 4 1 span span class h
  • 设置开机自动运行vncserver

    a 在 etc rc d rc local文件中加入下面行 etc init d vncserver start b 编辑 etc sysconfig vncservers VNCSERVERS 61 34 1 root 34 VNCSER
  • Java面试题附答案(面试必会)

    Java面试题大全 JavaSE1 JDK和JRE区别2 八大数据类型3 equals和 61 61 区别4 String类的常用方法5 String不可变原理6 线程池三大方法 xff0c 七大参数 xff0c 四种拒绝策略7 Array
  • postgresql|数据库|批量执行SQL脚本文件的shell脚本

    前言 xff1a 对于数据库的维护而言 xff0c 肯定是有SQL脚本的执行 xff0c 例如 xff0c 某个项目需要更新 xff0c 那么 xff0c 可能会有很多的SQL脚本需要执行 xff0c SQL脚本可能会包含有建表 xff0c
  • 记录hadoop的常用命令

    本文记录了 hadoop 的常用命令 1 hadoop fs 这是 hadoop 输出的文件管理的命令 xff0c 比较常用 xff0c 具体参数有 xff1a 1 01 cat hadoop fs cat fileurl 将路径下的文件内
  • 为什么Nicira要抛弃OpenFlow硬件控制?

    http net zdnet com cn network security zone 2013 0105 2138778 shtml 摘要 xff1a 5年前 xff0c 当Nicira创始人Martin Casado在斯坦福大学攻读博士
  • 《MUTAN: Multimodal Tucker Fusion for Visual Question Answering》阅读笔记

    MUTAN Multimodal Tucker Fusion for Visual Question Answering 阅读笔记 一 研究背景 Bilinear models在视觉问答 xff08 VQA xff09 任务中进行信息融合提
  • Windows下GCC的安装和使用

    一 安装 1 为了在 Windows 上安装 GCC xff0c 需要到MinGW 的主页 www mingw org下载最新版本的 MinGW 安装程序 eg xff1a https osdn net projects mingw dow
  • 实战:CAS搭建

    一 CAS服务器的搭建 1 下载CAS服务器的源码 xff0c 我下载的是CAS Maven WAR Overlay 的分支4 2 X版本 注 xff1a 如若不想了解查找下载地方过程 xff0c 请直接参见 xff08 3 xff09 的