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为例,在我们项目中
- 引用以下包:
<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