之前项目涉及到一个基于cas集成sso的需求,但是有时候测试的时候不想要这个sso功能,每次去注释下代码很麻烦,在组长的带领帮助下就产生了这篇文章。
目录
1. 编写一个cas是否启用的属性类,便于yaml进行配置
@ConfigurationProperties(prefix = "jesse.cas")//这里是yaml中的层级,你可以自定义
public class MyCasProperties {
/**
* 是否启用cas登录
*/
private boolean enableCas = true;
public boolean isEnableCas() {
return enableCas;
}
public void setEnableCas(boolean enableCas) {
this.enableCas = enableCas;
}
同步的yaml配置:
jesse:
cas:
enable-cas: true
2. 编写未启用cas的自动配置类(false)
@Configuration
@EnableConfigurationProperties(MyCasProperties.class)//同步填写属性类
public class MyCasAutoConfiguration {
@Autowired
private MyCasProperties myCasProperties;
@PostConstruct
public void init() {
if (myCasProperties.isEnableCas()) {
System.out.println("已开启CAS!");
} else {
System.out.println("未开启CAS!");
}
}
}
3.编写启用cas后的自动配置类(true)
@ConditionalOnProperty(prefix = "jesse.cas", name = {"enableCas", "enable-cas"}, matchIfMissing = true, havingValue = "true")//填写对应的配置,如果yaml中对应的配置为true时才会进入当前配置类
@Configuration
//@EnableCasClient 如果是springboot且引入了相关依赖则可以直接使用该注解减少手写cas相关配置
@EnableConfigurationProperties(MyCasProperties.class)//同步填写属性类
public class MyCasAutoConfigurationTrue {
@Autowired
private MyCasProperties myCasProperties;
@PostConstruct
public void init() {
System.out.println("开启CAS后的处理!");
}
/**
* CAS 配置类
*/
@Configuration
public class CasFilterConfig {
//填写你要对cas进行哪些配置
}
4. 同步修改yaml中的配置类
like this:
jesse:
cas:
enable-cas: true