博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cas5.3.2单点登录-骨架搭建(一)
阅读量:3784 次
发布时间:2019-05-22

本文共 5706 字,大约阅读时间需要 19 分钟。

原文地址,转载请注明出处:      © 

在多服务统一帐号的应用集中,单点登录是必不可少的。CAS就是成熟的单点登录框架之一。Github地址 。现在我们就通过一系列快速简单的构建方式实现一个简单的单点登录系统集。

首先下载cas,下载最新版本

域名映射

修改/etc/hosts文件,添加服务端域名(server.cas.com) 以及两个客户端的域名(app1.cas.com , app2.cas.com)

这里写图片描述

编译

解压zip,命令行进去,执行mvn clean package

结束之后会出现 target 文件夹,里面有一个cas.war包,这个war包就是我们要运行的程序。

本地配置tomcat通过https访问

生成keystore

keytool -genkey -alias tomcat -keyalg RSA -validity 3650 -keystore /Users/wangsaichao/Desktop/tomcat.keystore

-alias tomcat :表示秘钥库的别名是tomcat,实际操作都用别名识别,所以这个参数很重要。

-validity 3650 : 表示证书有效期10年。
秘钥库口令 我输入的是 changeit
名字与姓氏输入服务器域名,其它一路回车,最后如果显示正确 输入 ‘y’ 就行了。
tomcat秘钥口令我采用与秘钥库相同,因此也是一路回车。
这里写图片描述
之后可以使用以下命令查看生成秘钥库的文件内容:

keytool -list -keystore /Users/wangsaichao/Desktop/tomcat.keystore

这里写图片描述

根据keystore生成crt文件

#输入第一步中keystore的密码changeitkeytool -export -alias tomcat -file /Users/wangsaichao/Desktop/tomcat.cer -keystore /Users/wangsaichao/Desktop/tomcat.keystore -validity 3650

这里写图片描述

信任授权文件到jdk

sudo keytool -import -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/security/cacerts -file /Users/wangsaichao/Desktop/tomcat.cer -alias tomcat -storepass changeit

证书库cacerts的缺省口令为changeit ,这也是为什么我上面的密码都是用的它,防止混淆,直接都设成一样的。

这里写图片描述
注意:我在命令的最前面加了 sudo 是因为我的环境是mac 直接操作jdk没有权限。
删除授权文件命令如下,删除证书也需要输入密码:changeit

sudo keytool -delete -alias tomcat -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/security/cacerts

查看cacerts中证书 命令如下:

keytool -list -v -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/security/cacerts

修改tomcat的配置文件server.xml

添加以下内容:

这里写图片描述

让chrome浏览器信任证书

这里写图片描述

这里写图片描述

启动CAS服务

将第一步编译好的cas.war部署到tomcat中启动,然后访问 如果提示签名不正确之类的就点击高级/详细信息,继续访问。

这里写图片描述
旁边Static Authentication 提示你:你现在只有一个写死的用户默认账号:casuser 默认密码:Mellon 仅有这一个用户,目前这个服务端只能看看,没什么实际用途。建议您将CAS连接到LDAP、JDBC等。

什么是Overlay

overlay可以把多个项目war合并成为一个项目,并且如果项目存在同名文件,那么主项目中的文件将覆盖掉其他项目的同名文件。使用maven 的Overlay配置实现无侵入的改造cas。

使用Overlay生成真正有用的服务端

新建项目

pom.xml

pom是从解压的cas.war中拷贝出来的,将无用的配置删除。

4.0.0
org.apereo.cas
cas-server-base
war
1.0
org.springframework.boot
spring-boot-maven-plugin
${springboot.version}
org.springframework.boot.loader.WarLauncher
true
org.apache.maven.plugins
maven-war-plugin
2.6
cas
false
false
false
${project.build.directory}/war/work/org.apereo.cas/cas-server-webapp${app.server}/META-INF/MANIFEST.MF
org.apereo.cas
cas-server-webapp${app.server}
org.apache.maven.plugins
maven-compiler-plugin
3.3
cas
org.apereo.cas
cas-server-webapp${app.server}
${cas.version}
war
runtime
org.apereo.cas
cas-server-support-jdbc
${cas.version}
org.apereo.cas
cas-server-support-jdbc-drivers
${cas.version}
mysql
mysql-connector-java
5.1.36
5.3.2
2.0.0.RELEASE
-tomcat
1.8
1.8
UTF-8
sonatype-releases
http://oss.sonatype.org/content/repositories/releases/
false
true
sonatype-snapshots
https://oss.sonatype.org/content/repositories/snapshots/
true
false
shibboleth-releases
https://build.shibboleth.net/nexus/content/repositories/releases
spring-milestones
https://repo.spring.io/milestone

最终项目目录如下:

这里写图片描述
其中application.properties和META-INF文件夹从 css.war 里面拷贝出来,还有log4j2.xml也是从cas.war中拷贝出来的,因为默认的日志生成位置是在/etc/cas/logs下,启动会报错。

修改application.properties

server.ssl.enabled=trueserver.ssl.key-store=file:/Users/wangsaichao/Desktop/tomcat.keystoreserver.ssl.key-store-password=changeitserver.ssl.key-password=changeitserver.ssl.keyAlias=tomcat

这里写图片描述

在IntelliJ IDEA配置Tomcat

1.点击Run-Edit Configurations…

这里写图片描述

2.添加tomcat

这里写图片描述

3.配置tomcat如下:

这里写图片描述

这里写图片描述

4.第一次启动会出现以下界面,选accept就行了

这里写图片描述

然后访问,出现登录界面,就可以了,跟之前直接部署cas.war是一样的。

你可能感兴趣的文章
USACO 2007 Open Gold/acwing2240:餐饮 (拆点+最大流)‘三分图匹配’
查看>>
那些年你不知道的C++STL进制转换函数
查看>>
区间和并问题 思路加模板整理(校门外的树)
查看>>
C++中next_permutation函数的使用方法、原理及手动实现
查看>>
网络流常用小技巧之 拆点
查看>>
最大权闭合子图
查看>>
最小权点覆盖集 与 最大权独立集
查看>>
POJ 2125 Destroying The Graph && Acwing 2325. 有向图破坏(拆点+最小权点覆盖集)
查看>>
计算几何基础知识整理大全 代码模板与证明过程 (直线、向量、多边形、三维计算几何、凸包、半平面交、最小圆覆盖)
查看>>
计算几何之 判断两线段是否相交 代码模板与证明
查看>>
三维计算几何之三维凸包 增量法
查看>>
MySQL变量,存储过程,函数,流程控制详解(小白都能懂哦)
查看>>
9篇小白都能懂系列博客学完MySQL基础
查看>>
还在为Linux入门发愁?
查看>>
如何优雅而又不失内涵的在centos7下安装tree命令
查看>>
彻底掌握Linux文件与目录管理命令?进来看看硬核总结
查看>>
一文搞定Vim/Vi编辑器
查看>>
剑指offer之斐波那契问题(C++/Java双重实现)
查看>>
Linux网络命令
查看>>
一天教会三岁表弟HTML,你值得拥有
查看>>