Кодировка пароля с использованием аутентификации jdbc - PullRequest
0 голосов
/ 25 октября 2018

AuthenticationManagerBuilder имеет метод jdbcAuthentication(), который является целью при аутентификации JDBC.Как пример его использования

@Autowired
public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
          auth.jdbcAuthentication()
              .dataSource(dataSource)
              .usersByUsernameQuery(
                   "select username,password, enabled from users where 
                    username=?"
              )
             .authoritiesByUsernameQuery(
                 "select username, role from user_roles where username=?");
}   

Вопрос: пароль пользователя сохраняется в базе данных в зашифрованном виде.Есть ли способ, в конфигурации выше (используя AuthenticationManagerBuilder), установить, какой кодировщик применять для необработанного пароля

Примечание: я уже решил проблему сопоставления необработанного пароля из пользовательского интерфейса с закодированнымпароль хранится в базе данных, используя

@Autowired
public void init(AuthenticationManagerBuilder auth, DaoAuthenticationProvider provider) throws Exception {
  auth.authenticationProvider(provider);
}   

@Bean
public DaoAuthenticationProvider authProvider(CustomUserDetailsService userDetailsService, CustomEncoder customEncoder) {
  DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
  authProvider.setUserDetailsService(userDetailsService);
  authProvider.setPasswordEncoder(customEncoder);
  return authProvider;
}

и определяя CustomUserDetailsService userDetailsService, CustomEncoder customEncoder, но мне интересно знать, возможно ли повторно использовать всю функциональность AuthenticationManagerBuilder без этих пользовательских реализаций

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...