Issue
Encryption
Md5PasswordEncoder md5PasswordEncoder = new Md5PasswordEncoder();
md5PasswordEncoder.encodePassword(
userRegistrationInfo.getPassword(),
AppConstants.MD5_PASSWORD_ENCODER_SALT);
Spring Security Configuration
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.userDetailsService(userDetailsService)
.passwordEncoder(passwordEncoder());
}
@Bean
public PasswordEncoder passwordEncoder() {
PasswordEncoder encoder = new BCryptPasswordEncoder();
return encoder;
}
I need to use org.springframework.security.authentication.encoding.Md5PasswordEncoder
for my password encryption. But I don't know how to configure passwordEncoder()
in Spring security configuration.
Solution
Security Config
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
}
@Bean
public PasswordEncoder passwordEncoder(){
PasswordEncoder encoder = new FlasherPasswordEncoder();
return encoder;
}
PasswordEncoder MyOwn Implementation
package com.flasher.config;
import org.springframework.security.authentication.encoding.Md5PasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
public class FlasherPasswordEncoder implements PasswordEncoder {
@Override
public String encode(CharSequence rawPassword) {
return new Md5PasswordEncoder().encodePassword(rawPassword.toString(), AppConstants.MD5_PASSWORD_ENCODER_SALT);
}
@Override
public boolean matches(CharSequence rawPassword, String encodedPassword) {
return new Md5PasswordEncoder().encodePassword(rawPassword.toString(), AppConstants.MD5_PASSWORD_ENCODER_SALT)
.equals(encodedPassword);
}
}
Answered By - Jackson Baby
Answer Checked By - Katrina (JavaFixing Volunteer)