#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?;}
}