Spring Security 请求的默认行为是什么

问题描述 投票:0回答:1

文档清楚地说:

默认情况下,Spring Security 要求对每个请求进行身份验证

我试过了,不是这样的。

我创建了一个普通的 Spring Framework Java 项目(无 Spring Boot)并定义了以下 bean:

@Bean
public SecurityFilterChain testFilterChain(HttpSecurity http) throws Exception {
    return http
            .csrf().disable()
            .build();
}

所有请求都不需要经过身份验证。事实上,甚至没有带有

AuthorizationFilter
的过滤器链。

未定义任何 bean 时结果相同。

我遗漏了什么还是文档有误?

编辑:项目设置正确。配置类具有

@EnableWebSecurity
注释,一旦我将
.authorizeHttpRequests().anyRequest().authenticated()
添加到配置中,则每个请求都必须经过身份验证。

spring spring-security
1个回答
0
投票

文档是正确的,您只是断章取义。完整的段落是:

默认情况下,Spring Security 要求每个请求 已验证。也就是说,每当您使用 HttpSecurity 实例时, 有必要声明一下你的授权规则。

只要您没有提供自己的

SecurityFilterChain
bean,每个请求都会经过身份验证。如果您这样做了,它现在就会按照您设置的方式运行。

© www.soinside.com 2019 - 2024. All rights reserved.