您的位置:

Spring Boot CAS 单点登录

一、概述

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应用的单点登录和登出。