При выполнении BASIC-аутентификации в Spring Security я хочу сопоставить хэш пароля, а не сам пароль. Ради хранения хэша, а не пароля на стороне сервера.
У меня есть следующий код:
@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.
Или я все время ошибаюсь, и клиент должен отправлять на сервер хэш, а не пароль?