背景
上一篇博客里我们成功搭建了一个CAS Server,只有Server,没有Client,未免不太圆满,今天我们继续来熟悉CAS,通过搭建一个SpringBoot项目整合CAS来见证CAS Server 和Cas Client的通信过程。
SpringBoot整合Cas实践
1、搭建一个空的SpringBoot项目,这个可以参考我之前的博客Idea2023创建自定义项目骨架,用模板搭建,嘎嘎快,这里就不赘述了。
2、在application.yml中添加cas的相关配置
cas:
server-url-prefix: https://server.cas.com:8443/cas
#cas服务端的登录地址
server-login-url: https://server.cas.com:8443/cas/login
#当前服务器的地址(客户端)
client-host-url: http://localhost:19200
#Ticket校验器使用Cas30ProxyReceivingTicketValidationFilter
validation-type: cas3
3、添加maven依赖
<dependency>
<groupId>net.unicon.cas</groupId>
<artifactId>cas-client-autoconfig-support</artifactId>
<version>2.3.0-GA</version>
</dependency>
4、添加cas配置类
package com.leixi.casclient.config;
import org.jasig.cas.client.authentication.AuthenticationFilter;
import org.jasig.cas.client.session.SingleSignOutFilter;
import org.jasig.cas.client.session.SingleSignOutHttpSessionListener;
import org.jasig.cas.client.util.HttpServletRequestWrapperFilter;
import org.jasig.cas.client.validation.Cas30ProxyReceivingTicketValidationFilter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.EventListener;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author leixiyueqi
* @since 2024/1/5 19:39
*/
@Configuration
public class CasConfig {
//cas认证服务中心地址
@Value("${cas.server-url-prefix}")
private String CAS_SERVER_URL_PREFIX;
//cas认证服务中心登陆地址
@Value("${cas.server-login-url}")
private String CAS_SERVER_URL_LOGIN ;
@Value("${cas.client-host-url}")
//客户端的地址
private String SERVER_NAME;
@Bean
public FilterRegistrationBean filterSingleRegistration() {