IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Java Discussion :

[LDAP]ajouter des personnes automatiquement dans un annuaire


Sujet :

Sécurité Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2017
    Messages : 39
    Points : 19
    Points
    19
    Par défaut [LDAP]ajouter des personnes automatiquement dans un annuaire
    Bonjour, j'ai réussi a crée un code qui me permet d'ajouter des personnes dans un annuaire LDAP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    public void ajout() {
    		Hashtable<String, String> env =new Hashtable<String, String>();
    		env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    		env.put(Context.PROVIDER_URL,"ldap://localhost:389");
    		env.put(Context.SECURITY_AUTHENTICATION, "simple");
    		env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=my-domain,dc=com");
    		env.put(Context.SECURITY_CREDENTIALS, "secret");	
     
    		BasicAttributes attrs =new BasicAttributes("cn","P11");
    		BasicAttribute att0= new BasicAttribute("objectClass","top");
    		BasicAttribute att1= new BasicAttribute("sn","nomdefamille");
    		BasicAttribute att2= new BasicAttribute("mail","inconnu@gmail.com");
    		BasicAttribute att3= new BasicAttribute("givenName","prenom");
    		BasicAttribute att4= new BasicAttribute("postalCode","69699");
    		BasicAttribute att5= new BasicAttribute("homePhone","05696969");
    		BasicAttribute att6= new BasicAttribute("mobile","07696969");
    		BasicAttribute att7= new BasicAttribute("userPassword","secret");
     
    		att0.add("inetOrgPerson");
    		attrs.put(att0);
    		attrs.put(att1);
    		attrs.put(att2);
    		attrs.put(att3);
    		attrs.put(att4);
    		attrs.put(att5);
    		attrs.put(att6);
    		attrs.put(att7);
     
    		try {
    			DirContext ctx = new InitialDirContext(env);
    			ctx.createSubcontext("cn=P11,ou=Personne,o=Entreprise,dc=my-domain,dc=com",attrs);
    			System.out.println("Ajout psartek");
     
    		} catch (NamingException e) {
    			System.err.println("Erreur de co");
    			e.printStackTrace();
    		}
    Maintenant j'ai un fichier csv, mais je souhaiterai extraire chaque personne du fichier et les ajouter dans automatiquement plutôt que de les ajouter manuellement, pourriez-vous m'aidez, je sais qu'il faut que j'utilise un bufferreader pour lire le fichier csv mais pour ajouter chaque personne avec ses caractéristiques, je ne vois pas.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    1. Pour lire un csv,
      • on peut effectivement utiliser un BufferedReader, pour lire ligne à ligne avec BufferedReader.readLine(), puis diviser les lignes lues (des String) par String.split(","), ce qui permet d'obtenir les informations séparément.
      • on peut aussi, plus simplement/facilement, utiliser Files.lines() (on traite chaque ligne dans un Consumer), ou Files.readAllLines() (qui donne une liste de String). On continue d'obtenir des String, qu'on divise par String.split()
      • on peut aussi utiliser une bibliothèque comme Apache Commons CSV.
    2. ensuite, il suffit de transformer ton code de manière à ce que chaque propriété actuellement affectée en dur dans le code soit une variable, ou, si tu fais de ton code une méthode d'ajout d'utilsateur, un paramètre de cette méthode. Il suffit d'appeler ce code pour chaque ligne lue dans le fichier, avec chaque donnée obtenue par le String.split() affectée à la bonne variable/paramètre.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2017
    Messages : 39
    Points : 19
    Points
    19
    Par défaut
    J'ai essayé d'appliquer la première méthode mais j'ai un peu de mal lorsqu'il faut ajouter les personnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    import java.util.Hashtable;
    import javax.naming.*;
    import javax.naming.directory.*;
    import java.io.FileReader;
    import java.io.BufferedReader;
    import java.io.IOException;
     
    public class lol {
     
    	public static void main(String[] args) {
     
    		Hashtable<String, String> env =new Hashtable<String, String>();
    		env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    		env.put(Context.PROVIDER_URL,"ldap://localhost:389");
    		env.put(Context.SECURITY_AUTHENTICATION, "simple");
    		env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=my-domain,dc=com");
    		env.put(Context.SECURITY_CREDENTIALS, "secret");	
     
    			FileReader monFichier = null;
    			BufferedReader tampon = null;
     
    			try {
    				monFichier = new FileReader("D:\\ldap.csv");
    				tampon = new BufferedReader(monFichier);
     
    				while (true) {
    					String ligne = tampon.readLine();
    					if (ligne == null)
    						break;
    					String [] chaineCsv = ligne.split(";");
    					BasicAttributes attrs3 =new BasicAttributes("cn",chaineCsv[0]+chaineCsv[1]);
    					BasicAttribute att00= new BasicAttribute("objectClass","top");
    					BasicAttribute att111= new BasicAttribute("sn",chaineCsv[0]);
    					BasicAttribute att2= new BasicAttribute("givenName",chaineCsv[1]);
    					BasicAttribute att3= new BasicAttribute("street",chaineCsv[2]);
    					BasicAttribute att4= new BasicAttribute("l",chaineCsv[3]);
    					BasicAttribute att5= new BasicAttribute("postalCode",chaineCsv[4]);
    					BasicAttribute att6= new BasicAttribute("st",chaineCsv[5]);
    					BasicAttribute att7= new BasicAttribute("mail",chaineCsv[6]);
    					BasicAttribute att8= new BasicAttribute("uid",chaineCsv[7]);
    					BasicAttribute att9= new BasicAttribute("usrPassword",chaineCsv[8]);
    					BasicAttribute att10= new BasicAttribute("telephoneNumber",chaineCsv[9]);
    					BasicAttribute att11= new BasicAttribute("employeeNumber",chaineCsv[10]);
    					BasicAttribute att12= new BasicAttribute("carLicence",chaineCsv[11]);
    					BasicAttribute att13= new BasicAttribute("description",chaineCsv[12]);
    					BasicAttribute att14= new BasicAttribute("title",chaineCsv[13]);
    					BasicAttribute att15= new BasicAttribute("employeeType",chaineCsv[14]);
    					BasicAttribute att16= new BasicAttribute("businessCategory",chaineCsv[15]);
     
    					att00.add("inetOrgPerson");
    					attrs3.put(att00);
    					attrs3.put(att111);
    					attrs3.put(att2);
    					attrs3.put(att3);
    					attrs3.put(att4);
    					attrs3.put(att5);
    					attrs3.put(att6);
    					attrs3.put(att7);
    					attrs3.put(att8);
    					attrs3.put(att9);
    					attrs3.put(att10);
    					attrs3.put(att11);
    					attrs3.put(att12);
    					attrs3.put(att13);
    					attrs3.put(att14);
    					attrs3.put(att15);
    					attrs3.put(att16);		
     
    					try {
    						DirContext ctx = new InitialDirContext(env);
    						ctx.createSubcontext("cn="+chaineCsv[0]+chaineCsv[1]+",ou=Personne,dc=my-domain,dc=com",attrs3);
    						System.out.println("Ajout psartek");
     
    					} catch (NamingException e) {
    						System.err.println("Erreur de co");
    						e.printStackTrace();
    					}
     
     
    				} 
     
    			} catch (IOException exception) {
    				exception.printStackTrace();
    			} finally {
    				try {
    					tampon.close();
    					monFichier.close();
    				} catch(IOException exception1) {
    					exception1.printStackTrace();
    				}
    			}
    	}
     
    }

Discussions similaires

  1. Ajouter des Controles automatiquement dans une collection
    Par dragondumond dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/05/2013, 16h57
  2. Ajout d'un utilisateur dans l'annuaire LDAP
    Par Delack dans le forum Langage
    Réponses: 4
    Dernier message: 25/02/2010, 12h13
  3. Réponses: 1
    Dernier message: 18/11/2008, 17h50
  4. [MFC] Ajout des fichiers récents dans un menu
    Par Choupinou dans le forum MFC
    Réponses: 3
    Dernier message: 20/08/2004, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo