SpringBoot 搭建CAS 客户端 和CAS 服务端

时间:2024-03-16 10:48:39

第一步:搭建CAS5.3 服务端

Github 下载CAS5.3 服务端版本:https://github.com/apereo/cas-overlay-template/tree/5.3

注意:最新的master分支使用的需要java11,该分支使用Gradle工程 由于我使用的是java8,采用CAS5.3版本。
CAS4.x的server是基于Spring的,模版引擎使用的是JSP。
CAS5.X之后使用的是基于SpringBoot的,模版引擎使用Thymeleaf。

1、解压下载的cas5.3.zip文件包,切换至cas5.3解压文件目录,执行maven 打包命令:mvn package

2、执行完打包命令,会在cas5.3解压文件夹下生成一个target文件夹,包含cas.war包

SpringBoot 搭建CAS 客户端 和CAS 服务端
3、Tomcat8 部署cas.war 和修改相关配置:

3.1:由于CAS默认使用的是基于https协议,需要改为兼容使用http协议 
到C:\tomcat\apache-tomcat-8.0.47\webapps\cas\WEB-INF\classes目录的application,properties添加如下的内容

cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true

3.2:至C:\tomcat\apache-tomcat-8.0.47\webapps\cas\WEB-INF\classes\services目录下的HTTPSandIMAPS-10000001.json 
修改内容如下,即添加http

  "serviceId" : "^(https|http|imaps)://.*",

3.3:由于https协议默认使用的端口为8443,我们修改为tomcat的8080端口 
到C:\tomcat\apache-tomcat-8.0.47\webapps\cas\WEB-INF\classes目录的application,properties添加如下的内容

server.port=8080

3.4:由于使用的静态密码为casuser::Mellon不好记忆, 修改密码 
至C:\tomcat\apache-tomcat-8.0.47\webapps\cas\WEB-INF\classes目录的application,properties的最后面修改密码为如下

cas.authn.accept.users=admin::admin

至此Cas 服务端搭建完毕。

 

第二步:SpringBoot 搭建Cas 客户端

2.1 springboot 添加cas 客户端依赖jar 包:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.zzg</groupId>
    <artifactId>boot-cas</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>boot-cas-controller</artifactId>
  
  <dependencies>
  	<!--依赖cas 配置jar  -->
  	<dependency>
            <groupId>net.unicon.cas</groupId>
            <artifactId>cas-client-autoconfig-support</artifactId>
            <version>1.7.0-GA</version>
        </dependency>
  </dependencies>
</project>

2.2 application.properties文件配置:CAS 服务端地址、CAS登入地址、CAS客户端地址

# cas server settings
cas.server-url-prefix=http://localhost:8080/cas
cas.server-login-url=http://localhost:8080/cas/login
cas.client-host-url=http://localhost:9100
cas.validation-type=cas
# springboot server settings
server.port=9100

2.3 cas 客户端核心代码:

package com.zzg;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import net.unicon.cas.client.configuration.EnableCasClient;

@EnableCasClient // 启用cas 客户端
@SpringBootApplication
public class Application {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SpringApplication.run(Application.class, args);
	}

}

 

package com.zzg.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/cas")
public class CasController {

	@RequestMapping("/index")
	@ResponseBody
	public String index(){
		return "cas client success";
	}
}

cas客户端整体项目结构图:

SpringBoot 搭建CAS 客户端 和CAS 服务端

第三步:访问http://localhost:9100/cas/index,跳转至CAS 服务端登入界面,输入正确用户名和密码,返回相关数据结果:

SpringBoot 搭建CAS 客户端 和CAS 服务端