在Spring Security中禁用CSRF时,未授权获取请求

时间:2018-10-07 18:26:52

标签: spring spring-security

如果不添加以下内容,Spring Security基本身份验证将起作用

@Configuration
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable();
    }
}

在我添加此代码段后,没有授权标头的GET请求将获得响应,而我希望响应中显示未授权。在添加此配置之前,GET响应将得到401

唯一的变化是上述课程;没有其他改变。

1 个答案:

答案 0 :(得分:0)

尝试添加.anyRequest().authenticated(),这意味着所有请求都必须经过身份验证。如果您想添加豁免,请添加诸如.antMatchers(HttpMethod.GET, "/", "/js/**", "/css/*", "/images/**").permitAll()之类的内容,否则将无法通过身份验证。

示例代码:

@Configuration
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable().authorizeRequests()
            .antMatchers(HttpMethod.GET, "/", "/js/**", "/css/*", "/images/**").permitAll()
            .anyRequest().authenticated();
    }
}