快速开始

①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳✕✓✔✖

1. 搭建环境

按照官网的说明,在linux中可以使用这个脚手架来完成相关内容。其中如果https://casinit.herokuapp.com不能访问,建议用Docker,在本地生成一个 8080 服务,然后生成代码。

1.1 生成代码

用脚手架生成代码,这里主要是生成 CAS overelay。详细的用法看[官网说明](https://gitee.com/forkcodes/cas-initializr

# curl http://localhost:8080/starter.zip -o cas.zip
curl https://casinit.herokuapp.com/starter.zip -o cas.zip

这里使用了casinit.herokuapp.com现成的代码,如果上述网站不能访问,也可以采用下面的方法搭建脚手架:

1.2 配置环境

查看下载代码的readme

① 编译

./gradlew clean build

② 查看 tasks

./gradlew tasks

输出的有

CAS tasks
---------
casVersion - Display the current CAS version
containerImageCoords - Display the coordinates for the container image
copyCasConfiguration - Copy the CAS configuration from this project to /etc/cas/config
createKeystore - Create CAS keystore
createTheme - Create theme directory structure in the overlay
debug - Debug the CAS web application in embedded mode on port 5005
executable - Run the CAS web application in standalone executable mode
exportConfigMetadata - Export collection of CAS properties
getResource - Fetch a CAS resource and move it into the overlay
listTemplateViews - List all CAS views
setExecutable - Configure the project to run in executable mode
showConfiguration - Show configurations for each dependency, etc
unzip - Explodes the CAS archive and resources jar from the CAS web application archive
unzipWAR - Explodes the CAS web application archive

③ 创建 keystore 文件

准备目录:由于权限的问题,这里需要先建立一个目录

#创建一个文件夹
sudo mkdir /etc/cas
#将当前用户:fan添加给这个目录 ,如果是其他用户,请修改用户名
sudo chown -R root.fan /etc/cas
#给fan有写的权限
sudo chmod 771 /etc/cas

执行命令

./gradlew createKeystore

证书存储在文件 </etc/cas/cas.crt> 中。 这里生成证书的密码默认是:changeit。 Demo 可以用,但是今后要修改了。

④ 执行

可以执行代码,并通过浏览器打开:https://localhost:8443/cas

java -jar build/libs/cas.war
# 或者下面的命令
./gradlew run

CAS默认后台登陆密码deployerConfigContext.xml

<bean id="primaryAuthenticationHandler" class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">
<property name="users">
<map><entry key="casuser" value="Mellon"/></map>
</property>
</bean>

⑤ Debug

第一步:启动 Debug

./gradlew debug

有两点要注意:

  • 要在 Idea 点击 Debug 后,才会启动主应用程序。
  • Debug 启动过程会很慢

第二步:在 Idea 中,添加远程 Debug

  • 这里使用了远程 Debug 的方法
  • 点击开始 Debug,然后会发现 CAS 开始启动,这要等一会。

第三步:设置断点,进行调试

例如用ctrl+n打开类UsernamePasswordCredential, 然后设置断点看看。

不让 cas 用 https 来启动

cas:
server:
name: http://127.0.0.1:8090
prefix: ${cas.server.name}/cas
server:
port: 8090
ssl:
enabled: false