Il s'agit d'un processus de connexion utilisant l'ID et le mot de passe saisis à partir de l'écran. Le mot de passe étant haché et stocké dans la table utilisateur de la base de données, il était nécessaire de comparer le mot de passe saisi avec la valeur de hachage stockée dans la base de données.
L'authentification est NG lorsque vous essayez de vous connecter avec le compte qui doit être stocké dans la table des utilisateurs. Si vous supprimez le processus de hachage et que vous vous connectez en texte brut, l'authentification sera OK.
J'ai écrit une telle source.
WebSecurityConfig.java(Avant correction)
@Configuration
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
UserDetailsServiceImpl userDetailsService;
/**~ Omis ~*/
@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());
}
}
Lorsque j'ai recherché sur Google l'article sur l'authentification de connexion Spring, il a été écrit que la plupart des sites définissaient la méthode de codage du mot de passe dans la méthode configureGlobal
.
Je fais exactement ce qui est écrit sur le site auquel je fais référence! ?? Si vous pensez
Apparemment, il a été écrasé par les paramètres de la méthode configure
.
Il semble que c'était l'ordre de traitement. Je ne le comprends pas en détail, alors j'ai pensé que je devrais connaître le cycle de vie du printemps.
WebSecurityConfig.java(modifié)
@Configuration
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
UserDetailsServiceImpl userDetailsService;
/**~ Omis ~*/
@Bean
PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
/**~ Supprimer la méthode de configuration ~*/
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService)
.passwordEncoder(passwordEncoder());
}
}
Recommended Posts