spring-security Sping Boot 安全性传递错误的凭证

eeq64g8w  于 2022-11-11  发布在  Spring
关注(0)|答案(1)|浏览(158)

我为一个Springboot应用程序创建了一个非常简单的HTTP基本安全性,应用程序部署后,我放入用户名和密码。问题是,如果我用不同的密码再次调用,请求仍然算作正确的,而不是拒绝它。但如果我更改用户,那么应用程序拒绝我的请求,并等待正确的用户名和密码。
我代码:

@Configuration
public class SecurityConfig {
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.csrf().disable().authorizeRequests().anyRequest().authenticated().and().httpBasic();
        return http.build();
    }
}

结果用好了凭据:The json output is as expected
结果用坏凭证:The json output is still as if it was succesfull
结果与用户不同:The app behaves like expected

ykejflvf

ykejflvf1#

这对于httpBasic()是预期的,请参见BasicAuthenticationFilter
在第一个请求之后,您应该有一个JSESSIONID cookie,它将用于验证以后的请求。此行为避免了在每次有请求进入时都执行基本验证流。重新验证的唯一原因是HTTP Basic username与已验证用户的用户名不同。

相关问题