我的WebSecurity配置如下所示;
@EnableWebSecurity
@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
}
@Override
protected void configure(AuthenticationManagerBuilder builder) throws Exception {
builder.inMemoryAuthentication().withUser("hellouser")
.password("hellopass").roles("USER");
}
}
当我给予错误的用户名时,验证会失败。但是,如果我一次验证成功,之后所有使用错误密码但正确用户名的请求都会成功验证......
它是否被缓存在某个地方?
我可以禁用此功能吗?
如果密码错误,是否会给予身份验证失败?
注意:我正在学习spring安全。我没有任何html页面在这个应用程序和测试从 Postman 。
2条答案
按热度按时间3b6akqbq1#
请在configure方法中使用
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
。xzlaal3s2#
我能够从下面的配置使用基本认证从 Postman 访问网址,即使与错误的凭据.这是发生的,因为一旦你提供正确的凭据凭据得到存储在会话中,即使你重复相同的请求,相同的会话将用于访问网址.
解决方案:
在这个例子中,我们使用了一个简单的方法来创建一个会话。
只需添加上面的代码。因此,这种配置确保了一次只对一个用户的一个示例进行身份验证。如果同一个用户试图访问该url,则其先前的会话将被终止,然后该用户必须再次提供登录凭据,以便创建新的会话。