Spring Security BASIC auth - 匹配的密码哈希



当使用Spring Security进行BASIC身份验证时,我想匹配密码哈希而不是密码本身。为了存储哈希而不是密码服务器端。

我有以下代码:

@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
AppConfig appConfig;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/v2/**")
.hasAuthority(MY_AUTHORITY).anyRequest().authenticated()
.and()
.httpBasic();
}
@Autowired
public void configureSecurityManager(AuthenticationManagerBuilder authManagerBuilder) throws Exception {
new InMemoryUserDetailsManagerConfigurer<AuthenticationManagerBuilder>()
.withUser(appConfig.getCredentials().getUserName())
.password(appConfig.getCredentials().getPassword())
.authorities(MY_AUTHORITY)
.and()
.configure(authManagerBuilder);
}
}

我发现了一些BCrypt的例子,但是他们正在处理哈希密码而不是将哈希比较合并到BASIC身份验证方案中。

还是我一直弄错了,客户端应该向服务器发送哈希而不是密码?

这里有一个例子:http://www.devglan.com/spring-security/spring-boot-security-password-encoding-bcrypt-encoder

定义密码编码器后,在将来自请求的密码与DB密码进行比较时,spring默认会认为数据库中的密码是bcrypt编码的。

我还向您推荐以下链接:https://security.stackexchange.com/questions/64631/is-it-safe-to-send-clear-usernames-passwords-on-a-https-connection-to-authentica

最新更新