当我尝试使用inmemory用户名和密码登录时,它总是抛出无效消息。
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.httpBasic();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth)
throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
在此处输入图像描述
即使我输入了正确的用户名和密码,此对话框也会始终显示。
2条答案
按热度按时间esbemjvw1#
在configureglobal(…)中,我们需要使用像bcryptpasswordencoder这样的密码编码器,或者如果我们不想使用任何密码编码器,那么我们必须像password({noop}password)一样写入密码。{noop}意味着使用nooppasswordencoder来验证此密码。
hmtdttj42#
因为您使用的是inmemoryauth,所以我假设您这样做是为了学习spring,并且您的密码是“password”。在这种情况下,您还应该让spring知道您输入的明文密码应该按原样使用,这是通过使用nooppasswordencoder完成的。
nooppasswordencoder将显示为已弃用,因为它不打算在一般情况下使用。