Cet article est un article sur les opérations liées à la connexion LDAP dans la série Spring Boot. Il implique uniquement l'utilisation de base de l'ODM pour implémenter rapidement les opérations LDAP Addition, Suppression, modification et recherche. Pour des informations détaillées sur Spring LDAP, veuillez vous référer à la documentation officielle traduite.
Le but de cet article: Utilisez Spring Boot pour créer des projets pour aider les lecteurs à configurer et à fonctionner rapidement LDAP à l'aide de Spring LDAP. Les étapes générales sont les suivantes:
1. Créer un projet de démarrage de printemps (environ 1 minute)
2. Ajouter la dépendance LDAP Spring dans le fichier pom.xml (environ 1 minute)
3. Configurer les informations de connexion LDAP Spring (environ 1 minute)
4. Créer des classes d'entités comme carte d'entrée dans LDAP (fonction de mappage ODM, similaire à ORM)
5. Méthode d'écriture de la couche de service à l'aide de LDAPTemplate (environ 3 minutes)
6. Écrivez la couche de contrôleur (environ 3 minutes)
1. Créer un projet de démarrage de printemps (environ 1 minute)
Cliquez sur Fichier - Nouveau - Projet en idée
Figure 1
Comme indiqué dans la figure ci-dessus, sélectionnez Spring Initizr à gauche pour aider à initialiser le projet Spring. Après la configuration du SDK, cliquez sur Suivant.
Figure 2
Après avoir cliqué, comme le montre la figure 2, si vous faites une démonstration, la page peut être effectuée par défaut, cliquez sur Suivant.
Figure 3
Comme le montre la figure 3, nous sélectionnons le Web et les composants liés au Web seront affichés sur le côté droit. Nous sélectionnons le Web à droite et vérifions la case devant elle. Cela signifie que les dépendances liées au Web seront introduites dans le projet Spring Boot créé. Cliquez sur Suivant.
Figure 4
Comme le montre la figure 4, nommez-le simplement ici, cliquez sur Terminer.
2. Ajouter la dépendance LDAP Spring dans le fichier pom.xml (environ 1 minute)
Figure 5
Comme le montre la figure 5 ci-dessus, double-cliquez sur pom.xml dans le projet pour ajouter des dépendances.
Figure 6
Comme le montre la figure 6, le fichier a été chargé de dépendances à spring-boot-starter-web. Si nous voulons utiliser Spring LDAP pour faire fonctionner le serveur LDAP, nous devons ajouter Spring-Boot-Starter-Data-LDAP. Cette dépendance chargera automatiquement les dépendances Spring-LDAP-core et Spring-Data-LDAP. Parmi eux, Spring-LDAP-Core est la dépendance principale des opérations LDAP, tandis que Spring-Data-LDAP fournit des fonctions ODM pour simplifier les opérations. Nous pouvons voir ces deux dépendances dans les bibliothèques externes du projet, comme le montre la figure 7 suivante:
Figure 7
3. Configurer les informations de connexion Spring LDAP
Figure 8
Comme le montre la figure 8 ci-dessus, la configuration est basée sur les instructions de la configuration LDAP sur le site Web officiel de Spring Boot, vous pouvez voir ici. Après cette configuration, Spring Boot lira automatiquement la configuration.
4. Créer une classe d'entité comme carte d'entrée dans LDAP
Dans cet exemple, la fonction ODM est utilisée pour simplifier considérablement le fonctionnement de LDAP. Pour plus d'informations sur ODM, vous pouvez vous référer aux documents officiels traduits.
Nous créons la structure suivante dans le projet:
Figure 9
Maintenant, nous écrivons la classe d'entité qui mappe avec le package d'entrée. Parmi eux, ma structure LDAP est la suivante
Figure 10
Créer une nouvelle classe de personne
package com.example.demo.entry; import com.fasterxml.jackson.annotation.jsonignore; import org.springframework.ldap.odm.annotations.attribute; import org.springframework.ldap.odm.annotations.entry; import org.springframework.ldap.odm.annotations.id; import; org.springframework.ldap.support.ldapnameBuilder; import javax.naming.name; / ** * @author: geng_pool * @description: * @date: créé en 2017/12/27 10:24 * @Modified by: * / @ entrée (objetClasses = {"OrganizationPonde", "Person", "}, Base = {{" OrganizationPonde "," Person ","}, Base = {{" "o = myorg") Personne de classe publique {@id @jsonignore Nom privé DN; @Attribute (name = "CN") String privé CN; @Attribute (name = "sn") String privé Sn; @Attribute (name = "userpassword") String privé UserPassword; Personne publique (chaîne cn) {name dn = ldapnamebuilder.newinstance () .add ("o", "myorg") .add ("cn", cn) .build (); this.dn = dn; } public Person () {} / * getter * / nom public getdn () {return dn; } public String getCn () {return cn; } public String getSn () {return sn; } public String getUserPassword () {return userpassword; } / * setter * / public void setdn (name dn) {this.dn = dn; } public void setcn (String cn) {this.cn = cn; if (this.dn == null) {name dn = ldapnamebuilder.newinstance () .add ("o", "myorg") .add ("cn", cn) .build (); this.dn = dn; }} public void setsn (String sn) {this.sn = sn; } public void SetUserPassword (String userpassword) {this.userPassword = userPassword; } @Override public String toString () {return "Person {" + "dn =" + dn.toString () + ", cn = '" + cn +' / '' + ", sn = '" + sn +' / '+ ", userpassword ='" + userpassword + '/' '+'} '; }}Notez que @entry et @id sont requis. @Jsonignore doit ne pas signaler une erreur lors du passage de la personne à l'avant, car le type de nom ne peut pas être automatiquement analysé au format JSON. Notez que pour plus de commodité, j'ai écrit la méthode de génération de valeur DN dans le constructeur public (String CN) {}, et j'ai également écrit la méthode dans SetCN. Bien sûr, il y a un problème de duplication de code, ignorez-le.
5. Méthode d'écriture de la couche de service à l'aide de LDAPTemplate
Dans le package de services, créez une nouvelle classe ODMPersonRepo
package com.example.demo.service; import com.example.demo.entry.person; import org.springframework.beans.factory.annotation.autowired; import org.springframework.ldap.core.ldaptemplate; import org.springframework.steoType.Service; Importer STATIC org.springframework.ldap.query.ldapquerybuilder.query; / ** * @author: geng_pool * @description: * @Date: Créé en 2017/12/27 10:37 * @modified par: * / @ ServicePublic Class odmpersonrepo {@autowired private lDaplatelplatet lDAPTemplate; Public Create (personne personne) {lDaptemplate.create (personne); personne de retour; } Personne publique FindBYCN (String CN) {return lDaptemplate.findOne (query (). Where ("cn"). Is (cn), personne.class); } Personne publique modifyperson (personne personne) {lDaptemplate.update (personne); personne de retour; } public void Deleteperson (personne personne) {lDaptemplate.delete (personne); }}Comme vous pouvez le voir, l'addition de base, la suppression, la modification et les opérations de recherche ont été implémentées pour nous. Nous avons juste besoin d'appeler la méthode dans LDAPTemplate. Pour faire fonctionner les ajouts, les suppressions, les modifications et les recherches de LDAP plus librement, vous pouvez vous référer aux documents officiels traduits.
6. Écrivez la couche de contrôleur
Dans le cadre du package de contrôleur, créez une nouvelle classe TestController pour tester le fonctionnement de LDAP.
package com.example.demo.controller; import com.example.demo.entry.person; import com.example.demo.service.odmpersonrepo; import org.springframework.beans.factory.annotation.autowired; import org.springframework.ldap.core.ldaptemplate; import; org.springframework.web.bind.annotation. *; / ** * @author: geng_pool * @description: * @date: créé en 2017/12/27 10:50 * @modified by: * / @ restControllerPublic class TestController; @RequestMapping (value = "/ findone", méthode = requestMethod.Post) Personne publique FindBYCN (@RequestParam (name = "cn", requise = true) String cn) {return odmpersonrepo.findBycn (cn); } @Postmapping (value = "/ create") Public Person Create (@RequestParam (name = "cn") String cn, @ requestParam (name = "sn") String sn, @ requestParam (name = "userpassword") String userPassworld) {personne personne = new personne (); personne.setcn (CN); personne.setsn (SN); Person.SetUserPassword (UserPassWorld); retour odmpersonrepo.create (personne); } @Postmapping (value = "/ update") public Person Update (@RequestParam (name = "cn") String cn, @ requestParam (name = "sn") String sn, @ requestParam (name = "userpassword") string userpassworld) {personne personne = new personne (); personne.setcn (CN); personne.setsn (SN); Person.SetUserPassword (UserPassWorld); retour OdmpersonRepo.Modifyperson (personne); } @Postmapping (value = "/ delete") public void delete (@RequestParam (name = "cn") String cn) {personne personne = new personne (); personne.setcn (CN); odmpersonrepo.deleterson (personne); }}À ce stade, une démo de base est terminée. Tessons-le ci-dessous
test
Pour que tout le monde puisse suivre les étapes, je n'utiliserai pas Postman pour tester, mais tester l'interface dans le navigateur. ,
Démarrez le démarrage de printemps. S'il n'y a pas d'erreur, ouvrez le navigateur à localhost:8080/ , appuyez sur F12 et faites apparaître le mode développeur. Trouvez la console de la console pour nous faciliter pour envoyer des instructions de test.
Tout d'abord, introduisez jQuery.js. Ouvrez jQuery.js, sélectionnez All - Copier - Coller dans la console - Entrez, comme indiqué dans la figure ci-dessous:
Figure 11
Montré comme vrai, ce qui signifie que le chargement est réussi. Nous pouvons utiliser l'Ajax de JQuery pour le tester.
Données ajoutées
Figure 12
Comme l'exige le test Controller de la couche de contrôleur, nous utilisons la méthode de post sur l'adresse / création pour passer les données CN SN UserPass Word
Figure 13
Dans le serveur LDAP, les données ajoutées sont également affichées
Figure 14
Trouver des données
Figure 15
Les données peuvent également être trouvées correctement sur la base de CN.
Modifier les données
Figure 16
Vérifions si le LDAP est modifié
Figure 17
Vous pouvez voir que les données peuvent être modifiées normalement
Supprimer les données
Figure 18
Vérifiez si vous devez supprimer dans LDAP
Figure 19
Comme vous pouvez le voir, les données ont été supprimées correctement.
Autres instructions
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.