一、概述
CAS即Central Authentication Service,是耶鲁大学发起的开源单点登录解决方案。CAS在很多大学和公司被广泛应用。
Spring Boot CAS 单点登录结合了Spring Boot和CAS,可以轻松实现Web应用的单点登录。
二、CAS客户端的配置
在pom.xml文件中添加CAS客户端的依赖。
<dependency> <groupId>org.jasig.cas.client</groupId> <artifactId>cas-client-core</artifactId> <version>3.5.1</version> </dependency>
在application.properties文件中添加CAS客户端的配置。
# CAS Client cas.server.url=https://cas-server.com:8443/cas cas.client.host=localhost cas.client.loginUrl=https://localhost:8443/login cas.client.validateUrl=https://localhost:8443/serviceValidate cas.client.logoutUrl=https://localhost:8443/logout cas.client.protocol=https cas.client.singleSignOutFilter.enabled=true cas.client.useSession=true
其中,cas.server.url为CAS服务器的URL地址,cas.client.host为本机的IP地址,cas.client.loginUrl为本应用的登录URL地址,cas.client.validateUrl为本应用验证票据的地址,cas.client.logoutUrl为本应用的登出URL地址。
三、Web应用的配置
在pom.xml文件中添加Web应用的依赖。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
在application.properties文件中添加Web应用的配置。
# Spring Boot server.port=8443 server.ssl.enabled=true server.ssl.key-store=file:/path/to/keystore server.ssl.key-store-password=changeit server.ssl.key-password=changeit server.servlet.context-path=/cas-client
其中,server.port为应用的端口号,server.ssl.enabled为是否启用SSL,server.ssl.key-store为SSL的密钥库地址,server.ssl.key-store-password为SSL的密钥库密码,server.ssl.key-password为SSL的私钥密码,server.servlet.context-path为应用的上下文路径。
四、CAS登出
在application.properties文件中添加CAS登出的配置。
# Spring Security CAS security.logout.success.url=https://cas-server.com:8443/cas/logout?service=https://localhost:8443 security.cas.logout.url=https://cas-server.com:8443/cas/logout?service=https://localhost:8443
其中,security.logout.success.url为应用登出后跳转的URL地址,security.cas.logout.url为CAS登出的URL地址。
五、小结
Spring Boot CAS 单点登录提供了一种简单而强大的解决方案,可以方便地实现Web应用的单点登录和登出。