cas客户端搭建

cas客户端搭建

一、概要

基于cas服务器搭建完成后,本篇开始介绍cas客户端的搭建,目的是完成访问客户端信息,客户端能够跳转到cas服务端的登录页面,用户授权成功后,能够跳回访问客户端的链接。

关于cas服务器搭建,请参考cas服务搭建

二、框架选用

本次搭建的cas客户端,是基于springboot框架为基础,集成spring-security以及spring-security-cas框架进行搭建。

sprng-security-cas是官方提供的一个包,支持了cas客户端的相关功能。关于spring-security-cas文档说明,可以参考spring-secyrity-cas官方文档

三、搭建

spring-security-cas是基于spring security框架下的一个拓展,因此需要对spring-security有一定的认识。本教程搭建不对spring-boot项目搭建流程进行说明。下面开始搭建cas client吧。

1.引入依赖

基于springboot项目下的pom.xml文件,添加以下依赖:

<properties>
    <org.jasig.cas.client.version>3.6.2</org.jasig.cas.client.version>
</properties>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-cas</artifactId>
    </dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-security</artifactId>
</dependency>
<dependency>
    <groupId>org.jasig.cas.client</groupId>
    <artifactId>cas-client-support-saml</artifactId>
    <version>${org.jasig.cas.client.version}</version>
</dependency>

2. 拓展配置文件

官方提供的配置文件类ServiceProperties仅支持以下参数:

参数 说明
service 用于进行登录后,cas服务端重定向回客户端的地址。
artifactParameter 配置cas服务发送给客户端验证的参数,默认为ticket,如:https://server3.company.com/webapp/login/cas?ticket=ST-0-ER94xMJmn6pha35CQRoZ.
serviceParameter 配置cas客户端发送给cas服务端,服务端认证通过后,需要跳转的参数, 默认为service。也就是说,cas客户端会使用此参数加上以上的sevice,一起组装重定向到cas服务器的链接,如:https://my.company.com/cas/login?service=https%3A%2F%2Fserver3.company.com%2Fwebapp%2Flogin/cas.
sendRenew 指示是否应将renew参数发送到CAS登录URL和CAS验证URL。如果为true ,它将强制CAS再次对用户进行身份验证(即使用户先前已进行身份验证)。 在票证验证期间,将需要由于明确登录而生成票证。 高安全性应用程序可能会将其设置为true 。 默认为false ,提供自动单点登录。

基于ServiceProperties进行拓展,增加服务端url以及票据认证参数。如下:

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.cas.ServiceProperties;
import org.springframework.util.Assert;

import javax.validation.constraints.NotBlank;

/**
 * cas 客户端配置文件。
 * 继承{@link ServiceProperties},拓展cas 客户端的参数配置。
 *
 * @author Lvan
 * @since 2020/12/10
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Configuration
@ConfigurationProperties(prefix = "cas", ignoreUnknownFields = false)
public class CasClientConfigurationProperties extends ServiceProperties {
   
    /**
     * CAS服务端的URL,如https://example.com/cas or https://cas.example,必填的字段。
     */
    @NotBlank
    private String serverUrlPrefix;

    /**
     * CAS服务端登录url, 如https://example.com/cas/login or https://cas.example/login,必填字段
     */
    @NotBlank
    private String serverLoginUrl;

    /**
     * CAS协议验证类型。如果未明确设置,则默认为CAS3。
     */
    private ValidationType validationType = ValidationType.CAS3;

    /**
     * cas ticket验证类型。
     */
    enum ValidationType {
   
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值