基础说明
- 从源码文件夹可以看出,从v3.2.2.1-RC1: NOJIRA版本开始有Rest组件。
- 6.x版本要求jdk11以上,jdk11不能免费商用,使用5.x版本/jdk8即可。
- 从cas v4.0.0的更新日志-New Feature中可以看出,从该版本开始采用CAS 3.0协议;cas 3.x使用CAS 2.0协议。
- cas服务器搭建有三种方式:
(1)下载源码,自己编译打包
(2)使用官方发行版中的war包(不怎么需要修改的话)
(3)使用cas-overlay-template项目 - 本文各版本都是使用使用
tomcat8.5.41、端口8080
测试成功,其它版本tomcat不保证。
一、CAS 5.3.2开启Rest服务
overlay是maven/gradle提供的特性,只需要按照完全相同的路径覆盖掉自己需要修改的部分,代码结构清晰,方便升级和维护。
cas官方文档关于overlay的说明:https://apereo.github.io/cas/5.3.x/installation/Maven-Overlay-Installation.html
The process of working with an overlay, whether Maven or Gradle, can be summarized in the following steps:
- 下载overlay项目,简单运行测试
- 在target中找到需要修改的文件
- 按路径一毛一样拷贝到src目录下
- 修改文件
- 编译打包发布即可
- 下载cas-overlay-template-5.3项目:https://github.com/apereo/cas-overlay-template/tree/5.3
- 解压,编辑pom.xml文件
(1)去掉repositories,这样就会从自己maven配置的仓库下载,比如阿里云仓库,会快很多。
(2)添加rest依赖<!--添加到这个位置 ...Additional dependencies may be placed here... --> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-rest</artifactId> <version>${cas.version}</version> </dependency>
- 导入IDE,在IDE中部署到tomcat8.5并启动
cas 5.x 版本要求使用jdk1.8
- 浏览器测试
地址 http://localhost:8080/ 用户名、密码 casuser / Mellon - postman测试Rest
地址 POST
http://localhost:8080/v1/tickets参数 用户名、密码:casuser / Mellon Headers - Accept application/json(可选,如果这样设置,仅返回TGT)
二、CAS 4.0.0开启Rest服务
-
下载cas4.0.0的源码包:https://github.com/apereo/cas/releases/tag/v4.0.0
-
解压,在 cas-server-webapp\pom.xml 中添加:
<dependency> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-integration-restlet</artifactId> <version>${project.version}</version> <scope>compile</scope> </dependency>
-
在cas-server-webapp目录下运行
mvn clean mvn package
-
正常执行的话,会在target下生成cas.war文件
-
部署到tomcat8.5,浏览器测试正常
-
修改tomcat下项目文件中的\webapps\cas\WEB-INF\web.xml文件,增加如下配置(增加到第一个
<servlet>
配置的地方)<servlet> <servlet-name>restlet</servlet-name> <servlet-class>org.restlet.ext.spring.RestletFrameworkServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>restlet</servlet-name> <url-pattern>/v1/*</url-pattern> </servlet-mapping>
注意cas3.x和4.x这里配置不同
-
重启tomcat,使用postman测试rest接口
地址 POST
http://localhost:8080/cas/v1/tickets参数 用户名、密码:casuser / Mellon
三、CAS 3.5.2开启Rest服务
方法1:下载源码,自己编译打包方式
- 下载cas3.5.2的源码包:https://github.com/apereo/cas/releases/tag/v3.5.2
- 解压,在 cas-server-webapp\pom.xml 中添加:
<dependency> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-integration-restlet</artifactId> <version>${project.version}</version> <scope>compile</scope> </dependency>
- 在cas-server-webapp目录下运行(
一定注意:使用jdk1.7版本
)mvn clean mvn package
- 正常执行的话,会在target下生成cas.war文件
- 部署到tomcat,浏览器测试正常(3.x版本用户名、密码相同即可登录)
- 修改tomcat下项目文件中的\webapps\cas\WEB-INF\web.xml文件,增加如下配置(增加到第一个
<servlet>
配置的地方)<servlet> <servlet-name>restlet</servlet-name> <servlet-class>com.noelios.restlet.ext.spring.RestletFrameworkServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>restlet</servlet-name> <url-pattern>/v1/*</url-pattern> </servlet-mapping>
注意cas3.x和4.x这里配置不同
- 重启tomcat,使用postman测试rest接口
地址 POST
http://localhost:8080/cas/v1/tickets参数 用户名、密码:admin / admin
方法2:手动拷入jar包方式
- 下载release包
cas-server-3.5.2-release.zip
:https://github.com/apereo/cas/releases/tag/v3.5.2 - 解压,将\modules\cas-server-webapp-3.5.2.war更名为cas.war部署到tomcat8.5下
- 启动tomcat测试,效果同方法1
地址 POST
http://localhost:8080/cas/用户名、密码 3.x版本用户名、密码相同即可登录 - 拷贝如下jar包到cas\WEB-INF\lib下:
// \cas-server-3.5.2\modules文件夹中 cas-server-integration-restlet-3.5.2.jar // 以下5个jar包是我从方法1编译打包结果对比出来的,我是直接从方法1 war包中拷贝的,可以自己上maven仓库找 com.noelios.restlet.ext.servlet.jar com.noelios.restlet.ext.spring-1.1.0.jar com.noelios.restlet.jar org.restlet.ext.spring-1.1.10.jar org.restlet-1.1.10.jar
- 同方法1中修改\webapps\cas\WEB-INF\web.xml文件
- 重启tomcat,使用postman测试rest接口,效果同方法1
此方法最简单,只需要(1)拷入需要的jar包(2)配置web.xml 即可。
但是无法凭空确定需要的jar包,有时候可能不止看起来的一个jar包,还包括依赖的jar包,所以必要时还是需要使用方法1,熟悉之后,比如正式环境部署可以使用方法2。
references
[1] CAS各版本官方文档
[2] CAS5.2x单点登录(十五)---------cas server开启restful验证
[3] CAS4.0版本restful API部署及调用(http版)
[4] CAS3.5.2 Server集成RESTful API实施详细
[5] CAS5.3.2专栏文章