[JAVA] SpringSecurity J'étais accro à essayer de me connecter avec un mot de passe haché (résolu)

environnement

Ce que je voulais faire

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.

J'étais accro à

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.

Cause

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.

  1. Définir avec la méthode configureGlobal
  2. Définir avec la méthode de configuration

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

SpringSecurity J'étais accro à essayer de me connecter avec un mot de passe haché (résolu)
J'étais accro aux tests unitaires avec l'opérateur de tampon dans RxJava
J'étais accro à faire onActivityResult () avec DialogFragment
J'étais accro à NoSuchMethodError dans Cloud Endpoints
Ce à quoi j'étais accro lors du développement d'une application Spring Boot avec VS Code
Notez que j'étais accro au traitement par lots avec Spring Boot
J'étais accro à la configuration de default_url_options avec l'introduction de la conception de Rails
Ce à quoi j'étais accro avec l'API REST Redmine
J'étais étrangement accro à l'utilisation de l'API Stream de Java avec Scala
Une histoire dans laquelle j'étais accro à la conversion de type implicite d'ActiveRecord lors du test unitaire
J'étais accro à WSl en essayant de créer un environnement de développement d'applications Android avec Vue.js
J'étais accro au démarrage de sbt
[Circle CI] Une histoire à laquelle j'étais accro chez Start Building
Une note quand j'étais accro à la conversion d'Ubuntu sur WSL1 en WSL2
Ce à quoi j'étais accro lors de la mise en œuvre de l'authentification Google avec des rails
Quand j'ai essayé de composer une mise à jour dans le conteneur Docker, je me suis fâché avec proc_open (): fork a échoué
Une histoire à laquelle j'étais accro lors du test de l'API à l'aide de MockMVC
Une histoire à laquelle j'étais accro à deux reprises avec le paramètre de démarrage automatique de Tomcat 8 sur CentOS 8
J'étais accro à un simple test de Jedis (bibliothèque Java-> Redis)
Je souhaite sélectionner plusieurs éléments avec une disposition personnalisée dans la boîte de dialogue
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (édition PowerMockito)
J'étais accro à la réécriture sur @ SpringApplicationConfiguration-> @SpringBootTest
Je voulais mettre en place un diaporama de manière à la mode avec slick.
J'étais accro à la méthode du rouleau
Je souhaite afficher un PDF chinois (coréen) avec des rapports fins
J'étais accro au test Spring-Batch
J'étais un peu accro à la connexion ssh de mac à linux (ubuntu)
Je veux ForEach un tableau avec une expression Lambda en Java
[Go To Travel] J'ai cherché un plan avec une carte quo
J'étais un peu accro à la comparaison S3 Checksum, alors prenez note.
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (Black Magic)
J'étais accro à l'utilisation de RXTX avec Sierra
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
J'ai essayé de casser le bloc avec java (1)
La partie à laquelle j'étais accro dans "Introduction à Ajax dans les applications Web Java" de NetBeans
J'ai créé une fonction pour enregistrer des images avec l'API dans Spring Framework. Partie 1 (édition API)
Notez que j'étais accro aux paramètres du projet Android d'IntelliJ IDEA
Une histoire à laquelle j'étais accro lors de l'obtention d'une clé qui a été automatiquement essayée sur MyBatis
Je veux intégrer n'importe quel TraceId dans le journal
J'étais accro au record du modèle associé
Je veux utiliser une petite icône dans Rails
clone de kintone? J'étais assez accro au lancement de l'extension OSS WebDB avec Lightsail + Docker, alors prenez-en note.
J'ai essayé de créer une compétence Clova en Java
Je souhaite surveiller un fichier spécifique avec WatchService
J'ai essayé de créer une fonction de connexion avec Java
[Comment insérer une vidéo dans un hameau avec Rails]
Je souhaite définir une fonction dans la console Rails
Je veux cliquer sur une broche GoogleMap dans RSpec
Une note gênante lorsque vous essayez d'utiliser nginx avec des conteneurs distants de vscode
Comment initialiser par lots des tableaux avec Java que je ne savais pas quand j'étais débutant
J'ai créé une fonction pour enregistrer des images avec l'API dans Spring Framework. Partie 2 (édition client)
Ce n'est pas un gros problème si vous comprenez que j'étais accro à recevoir du courrier avec Java Mail depuis Exchange Online
J'ai essayé de créer un environnement de développement java8 avec Chocolatey