Spring Security BASIC auth - соответствующий хэш пароля - PullRequest
0 голосов
/ 07 мая 2018

При выполнении 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.

Или я все время ошибаюсь, и клиент должен отправлять на сервер хэш, а не пароль?

1 Ответ

0 голосов
/ 07 мая 2018

Вот вам пример: http://www.devglan.com/spring-security/spring-boot-security-password-encoding-bcrypt-encoder

После определения кодировщика пароля при сравнении пароля, поступающего из запроса, с паролем БД, Spring по умолчанию будет считать, что пароль в БД закодирован в bcrypt.

Также рекомендую следующую ссылку: https://security.stackexchange.com/questions/64631/is-it-safe-to-send-clear-usernames-passwords-on-a-https-connection-to-authentica

...