一直想把公司运营的项目的各个子项的认证及授权统一到Cas上,从有想法到现在快一年的时间了。现在才正式着手,有兴趣的朋友一起交流学习一下。具体项目的细节不便透露,整合的大体思路为:1、开发部署Cas服务器端功能,2、开发Cas客户端基本功能框架、3、将Cas客户端框架打jar提供子项目使用,4、Docker正式环境部署Cas服务器,该系列博客中仅涉及1、2部分内容。
新手上路
一、Github上下载Cas服务器项目
下载地址:https://github.com/apereo/cas-overlay-template,通过Branch下拉到5.3下载,本人使用5.3 进行开发部署。解压后用IDEA打开,如下图目录结构:
说明:本地需要安装配置Maven,需要等待相关资源库的下载
如果出现类型上图飘红的情况,直接删除。
二、编译并运行
通过Maven进行打包(也可在命令行进行打包操作),可以看到多出target目录,打包出的资源都在此处。
在IDEA的Terminal窗口中执行build run(cmd命令行相同),经过漫长的等待会看到如下信息:
并在后面跟着一串异常信息,然后运行进程终结........
通过观察异常信息可以看出,Cas使用SSL启动并监听8443端口,但是却找不到《thekeystore》文件。thekeystore是SSL密钥文件,因此要为Cas服务器建立一个属于自己的密钥文件。如何建立证书网上有很多教程,但本人使用 KeyStore Explorer 可视化工具进行密钥创建,要下载该工具可访问:https://download.csdn.net/download/popo_popo/10750816。
三、创建密钥,再次编译并运行
然后点 “OK”
保持原域名不变
密码:changeit
经过以上操作,已经建立了一个密钥。密钥要存储在什么地方,才能被Cas服务器引用到?
在IDEA的项目目录中创建src/main/resources目录,并把resources作为资源目录,如下图:
之后把上面创建的SSL证书保持到resources目录并命名为thekeystore
之后从target>cas>WEB-INF>classes下复制application.properties到src>main>resources目录下
并修改复制过来的配置文件中的server.ssl.key-store项值为classpath:thekeystore
以上操作完成后,再次执行build run,当你看到READY的时候,天空靓了,心情爽了?
四、测试(https不是http)
默认账号casuser,密码Mellon