我为一个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
1条答案
按热度按时间ykejflvf1#
这对于
httpBasic()
是预期的,请参见BasicAuthenticationFilter
。在第一个请求之后,您应该有一个
JSESSIONID
cookie,它将用于验证以后的请求。此行为避免了在每次有请求进入时都执行基本验证流。重新验证的唯一原因是HTTP Basicusername
与已验证用户的用户名不同。