记录下最近搞cas5.3.9版本时的过程,感觉步步都是坑啊。
一、什么是maven的overlay
overlay可以把多个项目war合并成为一个项目,并且如果项目存在同名文件,那么主项目中的文件将覆盖掉其他项目的同名文件。
apereo提供了一个基于层结构的框架,可以帮助开发者快速引入cas server的代码,然后实现自由配置或代码覆盖(不侵入源代码),打包方式也非常简单。 Github地址:https://github.com/apereo/cas-overlay-template (我们选择5.3.9版本)
二、什么是CAS?什么是单点登录?
CAS是一个单点登录框架,开始是由耶鲁大学的一个组织开发,后来归到apereo去管。
同时CAS也是开源,遵循着apache 2.0协议,代码目前是在github上管理。
单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
通俗理解为一个应用登录了,其他被授权的应用不用再登录。应用例子为:淘宝登录了天猫不用再登录。
三、构建CAS
1.环境要求:JDB1.8 。 2.下载或者克隆cas-overlay-template(version:5.3.9)到本地,用Intellji Idea/Eclipse打开项目,下载依赖时间较长,需耐心等待。(如果有个别jar下载不下来,就手动去下载,然后放到对应的本地jar包中) 3.在项目中添加src/main/java和src/main/resources目录,并将src/main/java设置为代码文件根目录,将src/main/resources设置为资源文件根目录。 4.将overlays目录下的WEB-INF/classes/目录中的application.properties文件复制到src/main/resources中.相同的文件名,我们项目中的application.properties会把它WAR里面的application.properties覆盖掉。 5.运行cas服务默认需要证书,我们这里不再配置证书,直接tp访问。需要做如下修改:
代码语言:javascript复制a.把C:Userse3DesktopCAS5.3.9cas-overlay-template-5.3overlaysorg.apereo.cas.cas-server-webapp-tomcat-5.3.9WEB-INFclassesservices复制到src/main/resources下,把Apereo-10000002.json删除,修改HTTPSandIMAPS-10000001.json里面的内容,"serviceId" : "^(https|imaps)://.*",改成"serviceId" : "^(https|imaps|http)://.*",其他不需改变。
b.C:Userse3DesktopCAS5.3.9cas-overlay-template-5.3srcmainresources下application.properties添加一下内容:
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true
# Json services 配置位置设定
cas.serviceRegistry.json.location=classpath:/services
c.pom里面添加依赖
<!-- 启用json格式的服务注册依赖-->
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-json-service-registry</artifactId>
<version>${cas.version}</version>
</dependency>
四、运行
由于cas是基于springboot构建的所以你可以直接 build.cmd run localhost:8443/cas
用户名密码在application.properties下 cas.authn.accept.users=