史上最详细的 Apereo CAS 5.3开发教程:一、Apereo CAS 5.3服务端Server环境搭建

版权声明:本文为博主原创文章,转载请注明出处。作者:杨雄进 https://blog.csdn.net/makyan/article/details/88878473

Apereo CAS 5.3 项目源码地址:https://github.com/apereo
CAS 系列详解:https://blog.csdn.net/makyan/column/info/36060

一、Apereo CAS 5.3服务端Server环境搭建

1.1. 本地配置tomcat通过https访问

1. 下载

在这里把zip文件下载下来:我下载的版本是5.3.9)
https://github.com/apereo/cas-overlay-template

2. 编译

解压zip,命令行进去,执行mvn clean package
结束之后会出现 target 文件夹,里面有war包啥的,把war包解压,比如我们把解压后的文件夹命名为 cas_war 吧,后文提到 cas_war 就代表是这个文件夹

3. 本地配置tomcat通过https访问

注意: 本机先安装好jdk,并配置好环境变量

(1) 生成证书

#linux
sudo keytool -genkeypair -alias "futurecloud" -keyalg "RSA" -keystore "/etc/cas/futurecloud.keystore"
#windows
keytool -genkeypair -alias "futurecloud" -keyalg "RSA" -keystore "E:\mycas\futurecloud.keystore"

按照以下输入:

密钥库口令: 123456(这个密码非常重要)   
名字与姓氏: www.futurecloud.com(域名很重要,建议自己编个域名,在host文件里写好映射)  
组织单位名称: futurecloud(随便填)   
组织名称: futurecloud(随便填)   
城市: beijing(随便填)   
省市自治区: hebei(随便填)   
国家地区代码: zh(随便填)

现在E:\mycas\futurecloud.keystore这个文件生成了

(2) 导出证书

#linux
sudo keytool -export -file /etc/cas/futurecloud.crt -keystore /etc/cas/futurecloud.keystore -alias futurecloud
#windows
keytool -export -file E:\mycas\futurecloud.crt -keystore E:\mycas\futurecloud.keystore -alias futurecloud

用刚刚的futurecloud.keystore文件生成了futurecloud.crt文件
注意:这里输入的是上面设置的密码:123456

(3) 导入证书到本地JDK(客户端认证)

#linux
sudo keytool -import -keystore /usr/java/jdk1.8.0_91/jre/lib/security/cacerts -file /etc/cas/futurecloud.crt -alias futurecloud
#windows
keytool -import -file E:\mycas\futurecloud.crt -alias futurecloud -keystore D:\workprograms\java\jdk1.8.0_91\jre\lib\security\cacerts -storepass changeit

注意:输入密码的时候输入changeit , java默认的
要删除也很容易:

keytool -delete -alias futurecloud -keystore D:\workprograms\java\jdk1.8.0_91\jre\lib\security\cacerts

(4) 配置tomcat SSL

修改tomcat的配置文件server.xml
删掉:

<Connector port="8080" protocol="HTTP/1.1"
   connectionTimeout="20000"
   redirectPort="8443" />

添加:

<Connector
    protocol="org.apache.coyote.http11.Http11NioProtocol" 
    port="8443" maxThreads="200" 
    scheme="https" secure="true" SSLEnabled="true" 
    keystoreFile="E:\mycas\futurecloud.keystore" keystorePass="123456" 
    clientAuth="false" sslProtocol="TLS"/>

(5) 把crt文件导入浏览器,我用的是chrome

!在这里插入图片描述在这里插入图片描述

把生成的crt文件导进去了。

(6) 检查配置

把 cas_war 放到tomcat的webapp下面改名为cas,启动tomcat,浏览器访问
https://www.futurecloud.com:8443/cas/login,
如果提示签名不正确之类的就点击高级/详细信息,继续访问。

在这里插入图片描述

cas-overlay项目的配置文件bootstrap.properties中有默认的登录用户名密码

在这里插入图片描述

输入casuser/Mellon 登录
在这里插入图片描述

4.建议

给cas单独弄个tomcat,并配置ssl访问,我本地开发复制了一份tomcat9,形成https的tomcat9-https,其他项目采用端口非8443的tomcat9。

1.2. IDEA引入CAS5.2.3 Server 项目,并覆盖原项目的部分配置

1.建项目

用IDEA 引入Apereo CAS5.2.3 Server端的项目cas-overlay

cas-overlay-project-structure-default.png

cas-overlay 项目中的 pom.xml 配置:

  • 定义了多个profile,默认运行的profile 的id = default ;
  • 多个仓库 repository ;
  • 配置属性properties;
  • 插件plugin ,插件有:
    • wrapper-maven-plugin
    • spring-boot-maven-plugin
    • maven-war-plugin

在插件maven-war-plugin配置了overlay,maven的overlay为我们重写项目中的接口、配置文件等做好了准备,即我们可以重写一个和原项目war包中的接口,或者添加原项目中的配置文件内容,然后通过maven打包,将我们新增的接口或配置文件打包进去,这样保持了原项目的无侵入性。
如我们可以改变 原项目 cas-overlay中默认的登录名/密码为:yangxj/yangxj。

2.在原项目cas-overlay中创建webapp,即创建项目的Sources Root 和Resources Root,结构如下:

src  
 └─main  
    └─java  
    └─resources

将java文件夹标记为Sources Root,resources标记为Resources Root。

3. 将原项目中的application.properties、log4j2.xml和META-INF(以后用到)文件夹从cas原项目包中拷贝出来,

放到resources资源包里面。
修改application.properties这个文件。
修改SSL的keystore存在的位置:

#修改ssl证书
server.ssl.key-store=E:/mycas/futurecloud.keystore
server.ssl.key-store-password=changeit  #证书导入到jdk中的密码
server.ssl.key-password=changeit   #证书导入到jdk中的密码

将登录名/密码,修改为:yangxj/yangxj

cas.authn.accept.users=yangxj::yangxj

修改log4j2.xml 中的日志存放目录

<Properties>
    <Property name="baseDir">E:\workspase\logs\cas</Property>
</Properties>

最终结构如下:
cas-overlay-project-structure-customize.png在这里插入图片描述

4. 配置调试注意:

  1. tomcat选择配置了ssl的那个
  2. url自己写一下,跟下面的https端口一样
  3. jdk至少1.8
  4. http port不要填,否则启动会报错
  5. contextpath配置为/cas

如下所示:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
浏览器访问:https://www.futurecloud.com:8443/cas/login
在这里插入图片描述
使用账户 yangxj/yangxj登陆成功。

猜你喜欢

转载自blog.csdn.net/makyan/article/details/88878473