springboot整合Cas客户端搭建

编程

1. 下载依赖包

git clone git@github.com:apereo/java-cas-client.git

cd java-cas-client

mvn clean package

 

通过Intelligent打开项目,可以看到如下模块:

Cas-client-core:是核心功能,包含认证认证和校验的过滤器

Cas-client-suuport-springboot:集成了springboot的快速开发,也是最推荐的方式。

其他的模块通过名称也能看出来,暂且不细说。

 

2. 使用

将上述模块打包后得到相应的jar包,在我们的项目中就可以引用了。以cas-client-support-springboot为例,在我们项目中

 

  1. 引用以下包:

<dependency>

<groupId>org.jasig.cas.client</groupId>

<artifactId>cas-client-support-springboot</artifactId>

<version>${java.cas.client.version}</version>

</dependency>

2. Applcation.properties或者application.yml中加入以下必填属性:

#cas服务器的url前缀

cas.server-url-prefix=https://cashost.com/cas

#cas服务登录路径

cas.server-login-url=https://cashost.com/cas/login

#cas客户端的地址

cas.client-host-url=https://casclient.com

3. 在应用启动类或者任何有@Configuration注解类的地方加上@EnableCasClient注解

@SpringBootApplication

@Controller

@EnableCasClient

public class MyApplication { .. }

 

4. 配置文件中其他的可选属性

#是否启用单点登出,默认true

cas.single-logout.enabled

# 认证url,默认 /*

cas.authentication-url-patterns

# 校验url,默认 /*

cas.validation-url-patterns

# 对url 进行包装,之后就可在request中获取到用户信息,默认/*

cas.request-wrapper-url-patterns

# 当前线程中哪些url可以获取到用户信息

cas.assertion-thread-local-url-patterns

cas.gateway

#在验证ticket成功后会生成一个Assertion对象,如果useSession为true,则会将该对象存放到Session中。

cas.use-session

# 验证之后是否重定向到service, 表示是否验证通过后重新跳转到该URL,但是不带参数ticket,默认为true。

cas.redirect-after-validation

cas.allowed-proxy-chains

cas.proxy-callback-url

cas.proxy-receptor-url

cas.accept-any-proxy

server.context-parameters.renew

5. 高级配置,通过配置文件的方式并不能覆盖到所有配置项,如果有其他配置,可以通过实现CasClientConfigurer类,覆写相关方法,注意实现类需要有@Configuration和@EnableCasClient两个注解

@SpringBootApplication

@EnableCasClient

class CasProtectedApplication implements CasClientConfigurer {

@Override

void configureValidationFilter(FilterRegistrationBean validationFilter) {

validationFilter.getInitParameters().put("millisBetweenCleanUps", "120000");

}

@Override

void configureAuthenticationFilter(FilterRegistrationBean authenticationFilter) {

authenticationFilter.getInitParameters().put("artifactParameterName", "casTicket");

authenticationFilter.getInitParameters().put("serviceParameterName", "targetService");

}

}

3. 登出流程

客户端登出仅仅只需要调用如下代码:session.invalidate(),如果还需要通知服务端下线,调用服务端的登出地址即可:https://casserver.com/cas/logout,一般通过重定向方式。

以上是 springboot整合Cas客户端搭建 的全部内容, 来源链接: utcz.com/z/518672.html

回到顶部