springboot集成cas
时间: 2023-09-18 12:08:58 浏览: 66
好的,我知道了。关于springboot集成cas,可以先从两个方面考虑,一是客户端如何集成,二是服务端如何配置。客户端集成需要引入相应的依赖,配置cas服务器的地址、服务地址等信息,还需要编写对cas认证的校验拦截器等。服务端配置需要配置cas服务器的地址、认证方式、回调地址以及对认证通过后的处理等。具体的步骤可以参考官方文档或者网上的博客。
相关问题
springboot集成CAS配置白名单
springboot集成CAS配置白名单的方法是使用FilterRegistrationBean来注册一个过滤器,将需要排除的路径配置在白名单中。首先,创建一个@Configuration注解的配置类,然后在该类中创建一个FilterRegistrationBean对象,并使用setUrlPatterns方法将需要排除的路径添加到白名单中。
例如,以下代码展示了如何配置白名单:
```java
@Configuration
public class CASConfig {
@Bean
public FilterRegistrationBean casFilterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new YourFilter()); // 这里的YourFilter是你自定义的过滤器
registrationBean.addUrlPatterns("/api/*"); // 添加需要排除的路径,例如/api/*
registrationBean.setName("casFilter");
registrationBean.setOrder(1);
return registrationBean;
}
}
```
springboot集成cas单点登录
Spring Boot集成CAS单点登录的步骤如下:
1. 配置CAS服务器
首先需要配置CAS服务器,包括安装和配置,这里不再赘述。
2. 引入CAS客户端依赖
在Spring Boot项目中引入CAS客户端依赖,例如:
```
<dependency>
<groupId>org.jasig.cas.client</groupId>
<artifactId>cas-client-core</artifactId>
<version>3.6.</version>
</dependency>
```
3. 配置CAS客户端
在Spring Boot项目中配置CAS客户端,包括CAS服务器地址、CAS客户端地址、CAS登录地址等,例如:
```
cas.server.url=https://cas.example.com/cas
cas.client.host.url=https://example.com
cas.login.url=https://cas.example.com/cas/login
```
4. 配置Spring Security
在Spring Boot项目中配置Spring Security,包括登录页面、登录成功后的跳转页面等,例如:
```
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private CasAuthenticationProvider casAuthenticationProvider;
@Autowired
private CasAuthenticationEntryPoint casAuthenticationEntryPoint;
@Autowired
private CasAuthenticationFilter casAuthenticationFilter;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/login").permitAll()
.anyRequest().authenticated()
.and()
.exceptionHandling()
.authenticationEntryPoint(casAuthenticationEntryPoint)
.and()
.addFilter(casAuthenticationFilter)
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/")
.invalidateHttpSession(true)
.deleteCookies("JSESSIONID")
.and()
.csrf().disable();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(casAuthenticationProvider);
}
}
```
5. 配置CAS认证提供者
在Spring Boot项目中配置CAS认证提供者,例如:
```
@Configuration
public class CasConfig {
@Value("${cas.server.url}")
private String casServerUrl;
@Value("${cas.client.host.url}")
private String casClientHostUrl;
@Value("${cas.login.url}")
private String casLoginUrl;
@Bean
public CasAuthenticationEntryPoint casAuthenticationEntryPoint() {
CasAuthenticationEntryPoint entryPoint = new CasAuthenticationEntryPoint();
entryPoint.setLoginUrl(casLoginUrl);
entryPoint.setServiceProperties(serviceProperties());
return entryPoint;
}
@Bean
public ServiceProperties serviceProperties() {
ServiceProperties serviceProperties = new ServiceProperties();
serviceProperties.setService(casClientHostUrl + "/login/cas");
serviceProperties.setSendRenew(false);
return serviceProperties;
}
@Bean
public CasAuthenticationFilter casAuthenticationFilter() throws Exception {
CasAuthenticationFilter filter = new CasAuthenticationFilter();
filter.setAuthenticationManager(authenticationManager());
return filter;
}
@Bean
public CasAuthenticationProvider casAuthenticationProvider() {
CasAuthenticationProvider provider = new CasAuthenticationProvider();
provider.setServiceProperties(serviceProperties());
provider.setTicketValidator(new Cas30ServiceTicketValidator(casServerUrl));
provider.setUserDetailsService(userDetailsService());
provider.setKey("casAuthProviderKey");
return provider;
}
@Bean
public UserDetailsService userDetailsService() {
return new InMemoryUserDetailsManager(Collections.emptyList());
}
@Bean
public AuthenticationManager authenticationManager() throws Exception {
return new ProviderManager(Collections.singletonList(casAuthenticationProvider()));
}
}
```
6. 编写登录页面
在Spring Boot项目中编写登录页面,例如:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<form action="/login/cas" method="post">
<input type="submit" value="Login">
</form>
</body>
</html>
```
7. 运行项目
最后运行Spring Boot项目,访问登录页面,输入CAS服务器的用户名和密码,即可实现CAS单点登录。