Cas 5.3x最简配置,解决https访问的问题
最近参与了公司注册登录模块的设计,协助leader设计cas服务器。
初次接触cas,还是比较陌生,资料也不多,当接触一个新的技术的时候,会有一种在暗中探物的感觉,分不出哪里是头,哪里是尾。
硬着头皮上阵,弄了好几天,终于有了点头绪。还是蛮喜欢这种正面突破的感觉。
版本参数:
- jdk1.8.0_111
- cas version 5.3.0-SNAPSHOT
- springboot version 1.5.13.RELEASE
先看看启动成功的可爱模样
登录
一、下载cas-overlay-template模板
这个模板我进行了一些整合和修改,添加了模板页面。
可以从github直接下载这个模板。
github下载地址:https://github.com/MaggieYear/cas-template.git
二、导入项目到sts
我习惯用spring tool suite进行开发,也可以用eclipse打开。
右键项目->maven->update project,更新下载jar包。
调整好项目,目录结构如下:
src/main/resources目录下
接下来,讲一下关键配置。
1、application.properties
#cas请求路径和ssl配置
server.context-path=/cas
server.port=8443
# 这里路径指项目所在磁盘根目录 E:\etc\cas\bisa.keystore
server.ssl.keyStore=/etc/cas/casServer.keystore
server.ssl.keyStorePassword=test123
server.ssl.keyPassword=test123
server.ssl.enabled=true
server.ssl.key-alias=cas.server.com
cas默认支持https,http不能访问。
证书路径很关键,我是在windows启动的,项目放E盘,/etc/cas/casServer.keystore,项目启动时,会在E:\etc\cas\bisa.keystore下寻找证书。
因此,可以将项目的etc文件夹整个复制到项目所在磁盘的根目录下,把我的证书casServer.crt和casServer.keystore删掉,不要偷懒直接用我的证书,必须要在本机重新配置https证书。
配置https证书的步骤,参考项目/etc/cas/创建证书步骤.txt,可以根据里面的步骤一步一步进行操作。
也可以参考教程:创建本地的https证书。
若项目是在linux环境下启动,路径可能需要调整。
我的配置文件没有整合jdbc,但是配置了redis
##
# redis配置,将ticket票据存在redis中,默认在内存里
#
cas.ticket.registry.redis.host=192.168.1.12
cas.ticket.registry.redis.database=1
cas.ticket.registry.redis.port=8379
cas.ticket.registry.redis.password=123456
cas.ticket.registry.redis.timeout=2000
cas.ticket.registry.redis.useSsl=false
#不设置redis线程池
cas.ticket.registry.redis.usePool=false
项目默认用户名和密码
##
# CAS Authentication Credentials
# 默认静态认证,登录名为admin 密码为admin
cas.authn.accept.users=admin::admin
2、/etc/cas/config/cas.properties
这个配置文件配置了项目访问路径。
项目启动后,访问https://cas.server.com:8443/cas
cas.server.name=https://cas.server.com:8443
cas.server.prefix=https://cas.server.com:8443/cas
cas.adminPagesSecurity.ip=127\.0\.0\.1
logging.config=etc/cas/config/log4j2.xml
三、如何启动cas-overlay-template
在sts启动cas-overay-template
输入命令“ ./build.sh run ” 回车,执行build.sh脚本
项目打包安装成功
打印stop,启动还算顺利。
这时候从浏览器访问https://cas.server.com:8443/cas
成功访问,后台控制台打印
最怕的是启动build.sh之后,打印大大的READY,这时候如果没有明显报错,麻烦就挺大的了。之前我一直遇到这个问题,没有解决。后期我再逮着这个问题,把bug和解决办法再补充上来。