如何编写测试以确保 CSRF 未被禁用
how to write a test to make sure CSRF is not disabled
JAVA 8 + SPRING 5 + Junit - 无 Spring 启动
我有遵循 spring 配置的示例。我想写一个基本测试来测试配置,如果有人关闭 csrf 配置测试应该失败。
默认情况下 csrf 是启用的,这就是为什么您看不到任何 csrf 配置的原因。
提前感谢任何帮助。
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class WebMVCSecurity extends WebSecurityConfigurerAdapter {
@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user1").password("{noop}user1Pass")
.authorities("ROLE_USER");
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/resources/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.httpBasic();
}
}
所有 spring 安全配置最终都会转换为 FilterChainProxy 对象,您可以自动连接然后遍历过滤器查找 CsrfFilter class 如果启用了 csrf。
JAVA 8 + SPRING 5 + Junit - 无 Spring 启动
我有遵循 spring 配置的示例。我想写一个基本测试来测试配置,如果有人关闭 csrf 配置测试应该失败。
默认情况下 csrf 是启用的,这就是为什么您看不到任何 csrf 配置的原因。
提前感谢任何帮助。
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class WebMVCSecurity extends WebSecurityConfigurerAdapter {
@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user1").password("{noop}user1Pass")
.authorities("ROLE_USER");
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/resources/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.httpBasic();
}
}
所有 spring 安全配置最终都会转换为 FilterChainProxy 对象,您可以自动连接然后遍历过滤器查找 CsrfFilter class 如果启用了 csrf。