Es handelt sich um einen Anmeldevorgang mit der auf dem Bildschirm eingegebenen ID und dem Kennwort. Da das Kennwort gehasht und in der Benutzertabelle der Datenbank gespeichert ist, musste das eingegebene Kennwort mit dem in der Datenbank gespeicherten Hashwert verglichen werden.
Die Authentifizierung ist NG, wenn versucht wird, sich mit dem Konto anzumelden, das in der Benutzertabelle gespeichert werden soll. Wenn Sie den Hashing-Prozess entfernen und sich im Klartext anmelden, ist die Authentifizierung in Ordnung.
Ich habe eine solche Quelle geschrieben.
WebSecurityConfig.java(Vor der Korrektur)
@Configuration
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
UserDetailsServiceImpl userDetailsService;
/**~ Ausgelassen ~*/
@Bean
PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService)
.passwordEncoder(passwordEncoder());
}
}
Als ich den Artikel über die Spring-Anmeldeauthentifizierung googelte, wurde geschrieben, dass die meisten Websites die Kennwortcodierungsmethode in der Methode "configureGlobal" festlegen. Ich mache genau das, was auf der Seite steht, auf die ich mich beziehe! ?? Wenn du denkst Anscheinend wurde es durch die Einstellungen in der "configure" -Methode überschrieben.
Es scheint, dass es die Verarbeitungsreihenfolge war. Ich verstehe es nicht sehr detailliert, deshalb dachte ich, ich sollte den Lebenszyklus des Frühlings kennen.
WebSecurityConfig.java(Überarbeitet)
@Configuration
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
UserDetailsServiceImpl userDetailsService;
/**~ Ausgelassen ~*/
@Bean
PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
/**~ Konfigurationsmethode löschen ~*/
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService)
.passwordEncoder(passwordEncoder());
}
}
Recommended Posts