Spring Boot версии 2.4.0 с использованием DaoAuthenticationProvider SHA-512

#java #spring #spring-security #sha512 #spring5

#java #весна #spring-безопасность #sha512 #spring5

Вопрос:

В spring 5 тип шифрования SHA-512 устарел. В моем проекте API я использую spring 5 , я должен использовать SHA-512, поскольку в базе данных используется шифрование паролей старого типа. Мой метод encoder должен возвращать объект пользовательского класса, который кодируется в SHA-512 с электронной почтой пользователя в качестве соли. Я использую пользовательскую таблицу пользователей. Есть идеи, как справиться с этой ситуацией? Спасибо за помощь, ребята. Мой класс безопасности Spring:

 @Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

private final CustomUserDetailsService customUserDetailsService;
@Autowired
public SecurityConfig(CustomUserDetailsService customUserDetailsService{this.customUserDetailsService=customUserDetailsService;}

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
            .antMatchers("/api/**").authenticated()
            .and()
            .httpBasic()
            .and()
            .csrf().disable()
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.authenticationProvider(authenticationProvider());
}

@Bean
public DaoAuthenticationProvider authenticationProvider() {
    DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
    authProvider.setUserDetailsService(customUserDetailsService);
    authProvider.setPasswordEncoder(encoder());
    return authProvider;
}
@Bean
public DelegatingPasswordEncoder encoder() {//what i return here for SHA-512?;}
}