irsot | Voici mon code source si qqun pouvait deceler mon erreur
la classe AnalyseDelta a pour principal but de lire un fichier texte qui correspond a peu pres à un fichier LDIF, elle décortique chaque personne se trouvant dans ce fichier texte en prenant son dn et ses attributs qu'elle transmet à la classe ServiceLDAP.
Classe AnalyseDelta
Code :
- public class AnalyseDelta {
- public static String FichierDeltaTestCharge = "//cheminfichier.txt";
- public static String containerName;
- public static String[] attributs;
- public static String dn;
- public static String utilisateur;
- public void LireDelta()
- {
- ServiceLdap sl = new ServiceLdap();
- String entitee="";
- String line="",LineDebut="",LineChangeType="",LineFin="",ChangetypeMode="";
- String adr1="",adr2="",adr3="",adr4="",adr5="",nom="",prenom="";
- String affec1="",affec2="",affec3="",affec4="",affec5="",civilite="",codeaffec="",codece="",codecentrefrais="",codeefs="",codemploi="";
- String struct1="",struct2="",struct3="",struct4="",struct5="",struct6="",struct7="",struct8="",cptprincipal="",datedeb="",datefin="";
- String degre="",fonction="",identback="",identifiant="",identhierar="",libaffec="",libcentre="",libentite="",liblieugeo="",liblongstrn1="";
- String liblongstrn2="",liblongstrn3="",libsociete="",libstruct1="",libstruct2="",libstruct3="",libstruct4="",libstruct5="";
- String libstruct6="",libstruct7="",libstruct8="",lieugeotra="",mail="",memoid="",numpc="",numsalarie="",profil1="",profil2="";
- String profil3="",profil4="",profil5="",teldirect="",telfax="",telportable="",telsecretariat="",typecontrat="";
- int j=0,x=0;
- try
- {
- BufferedReader b = new BufferedReader(new FileReader(FichierDeltaTestCharge));
- try{
- while(b.ready()) { // tant que le fichier n'est pas finit
- line=b.readLine();
- //System.out.println(line + " " +line.length());
- if(line.length()>17){identhierar=line.substring(0,18);}
- if(line.length()>15){codecentrefrais=codeaffec=affec1=affec2=affec3=affec4=affec5=LineFin=line.substring(0,16);}
- if(line.length()>15){struct1=struct2=struct3=struct4=struct5=struct6=struct7=struct8=line.substring(0,16);}
- if(line.length()>14){libstruct1=libstruct2=libcentre=libaffec=datefin=datedeb=line.substring(0,15);}
- if(line.length()>14){telsecretariat=libstruct3=libstruct4=libstruct5=libstruct6=libstruct7=libstruct8=line.substring(0,15);}
- if(line.length()>13){liblieugeo=adr5=adr4=adr3=adr2=adr1=line.substring(0,14);}
- if(line.length()>12){liblongstrn1=liblongstrn2=liblongstrn3=cptprincipal=line.substring(0,13);}
- if(line.length()>11){typecontrat=identifiant=identback=line.substring(0,12);}
- if(line.length()>10){telportable=numsalarie=lieugeotra=libsociete=LineChangeType=line.substring(0,11);}
- if(line.length()>9){teldirect=libentite=codemploi=line.substring(0,10);}
- if(line.length()>8){fonction=civilite=line.substring(0,9);}
- if(line.length()>7){profil1=profil2=profil3=profil4=profil5=codeefs=line.substring(0,8);}
- if(line.length()>6){telfax=memoid=codece=prenom=LineDebut=line.substring(0,7);}
- if(line.length()>5){numpc=degre=line.substring(0,6);}
- if(line.length()>4){mail=line.substring(0,5);}
- if(line.length()>3){nom=line.substring(0,4);}
- if(LineDebut.equals("dn: CN=" ) == true) //detecte si nous sommes au debut d'un utilisateur
- {
- StringTokenizer st = new StringTokenizer(line,"=," );
- st.nextToken();
- utilisateur = st.nextToken();
- st.nextToken();st.nextToken();st.nextToken();
- entitee = st.nextToken();
- dn = "uid=" + utilisateur + ",ou=personnel," + "ou=" + entitee + "," + containerName;
- }
- if(LineChangeType.equals("changetype:" ) == true) //detecte le changetype
- {
- StringTokenizer st0 = new StringTokenizer(line," " );
- st0.nextToken();
- ChangetypeMode = st0.nextToken();
- if(ChangetypeMode.equals("add" ) == true)
- {
- j=1;
- }
- if(ChangetypeMode.equals("delete" ) == true)
- {
- j=2;
- }
- if(ChangetypeMode.equals("Mask" ) == true)
- {
- j=3;
- }
- if(ChangetypeMode.equals("Modify" ) == true)
- {
- j=4;
- }
- }
- if(j == 1) // procédure d'ajout d'une personne
- {
- if(adr1.equals("ADRLIEUGEOTRA1:" ) == true)
- {
- StringTokenizer st1 = new StringTokenizer(line);
- st1.nextToken();
- while((st1.hasMoreTokens()))
- attributs[2] = attributs[2] + " " + st1.nextToken();
- }
- if(adr2.equals("ADRLIEUGEOTRA2:" ) == true)
- {
- StringTokenizer st1 = new StringTokenizer(line);
- st1.nextToken();
- while((st1.hasMoreTokens()))
- attributs[3] = attributs[3] + " " + st1.nextToken();
- }
- if(adr3.equals("ADRLIEUGEOTRA3:" ) == true)
- {
- StringTokenizer st1 = new StringTokenizer(line);
- st1.nextToken();
- while((st1.hasMoreTokens()))
- attributs[4] = attributs[4] + " " + st1.nextToken();
- }
- if(adr4.equals("ADRLIEUGEOTRA4:" ) == true)
- {
- StringTokenizer st1 = new StringTokenizer(line);
- st1.nextToken();
- while((st1.hasMoreTokens()))
- attributs[5] = attributs[5] + " " + st1.nextToken();
- }
- if(adr5.equals("ADRLIEUGEOTRA5:" ) == true)
- {
- StringTokenizer st1 = new StringTokenizer(line);
- st1.nextToken();
- while((st1.hasMoreTokens()))
- attributs[6] = attributs[6] + " " + st1.nextToken();
- }
- ....
- if(typecontrat.equals("TYPECONTRAT:" ) == true)
- {
- StringTokenizer st1 = new StringTokenizer(line);
- st1.nextToken();
- while((st1.hasMoreTokens()))
- attributs[67] = attributs[67] + " " + st1.nextToken();
- }
- if(LineFin.equals("FinCollaborateur" ) == true)
- {
- x=1;
- }
- if(x == 1)
- {
- int i;
- attributs[7] = attributs[2]+attributs[3]+attributs[4]+attributs[5]+attributs[6];
- //rajout d'un cn car la classe person de LDAP necessite l'attribut cn (common name)
- attributs[68] = utilisateur;
- for(i=0;i<attributs.length;i++)
- {
- if((attributs[i].equals(" " ) || attributs[i].equals(" " )) == false)
- {
- attributs[i]=attributs[i].trim();
- }
- }
- sl.AjouterPersonne(attributs,dn);
- for(i=0;i<attributs.length;i++)
- attributs[i]=" ";
- j=x=0;
- }
- }
- if(j==2)
- {
- sl.EnleverPersonne(dn);
- }
- }
- }
- finally
- {
- b.close();
- }
- }
- catch(IOException ioe)
- {
- System.err.println("IO erreur :" + ioe);
- }
- }
- public AnalyseDelta()
- {
- containerName = "XXX";
- attributs = new String[70];
- int i = 0;
- for(i=0;i<attributs.length;i++)
- attributs[i]=" ";
- }
- public static void main(String[] args)
- {
- AnalyseDelta lp = new AnalyseDelta();
- lp.LireDelta();
- }
- }
|
Classe ServiceLDAP
Code :
- public class ServiceLdap {
- public static int ldapPort;
- public static int ldapVersion;
- public static String ldapHost;
- public static String loginDN;
- public static String password;
- public static String containerName;
- public static LDAPConnection lc;
- public static LDAPAttribute attribute;
- public static LDAPAttributeSet attributeSet;
- public ServiceLdap() {
- ldapPort = LDAPConnection.DEFAULT_PORT;
- ldapVersion = LDAPConnection.LDAP_V3;
- ldapHost = "XXX";
- loginDN = "XXX";
- password = "XXX";
- containerName = "XXX";
- lc = new LDAPConnection();
- attribute = null;
- attributeSet = new LDAPAttributeSet();
- }
- public void AjouterPersonne(String[] attributs, String dn)
- {
- System.out.println("dn : " + dn);
- System.out.println("uid : " + attributs[34]);
- System.out.println("cn : " + attributs[68]);
- attributeSet.add( new LDAPAttribute("objectclass", new String("personCM" )));
- attributeSet.add( new LDAPAttribute("adrlieugeotra1", attributs[2]));
- attributeSet.add( new LDAPAttribute("adrlieugeotra2", attributs[3]));
- attributeSet.add( new LDAPAttribute("adrlieugeotra3", attributs[4]));
- attributeSet.add( new LDAPAttribute("adrlieugeotra4", attributs[5]));
- attributeSet.add( new LDAPAttribute("adrlieugeotra5", attributs[6]));
- ...
- attributeSet.add( new LDAPAttribute("uid", attributs[34]));
- ...
- attributeSet.add( new LDAPAttribute("cn", attributs[68]));
-
- LDAPEntry newEntry = new LDAPEntry( dn, attributeSet );
- try {
- lc.connect( ldapHost, ldapPort );
-
- lc.bind( ldapVersion, loginDN, password.getBytes("UTF8" ) );
- lc.add( newEntry );
- System.out.println( "\nAjout de l'entrée: " + dn + " est enregistrée." );
- lc.disconnect();
- }
- catch( LDAPException e ) {
- System.out.println( "Erreur: " + e.toString());
- }
- catch( UnsupportedEncodingException e ) {
- System.out.println( "Erreur: " + e.toString() );
- }
- }
- public void EnleverPersonne(String dn) // enleve une personne si
- {
- try
- {
- lc.connect( ldapHost, ldapPort );
- lc.bind( ldapVersion, loginDN, password.getBytes("UTF8" ) );
- lc.delete( dn );
- System.out.println( "\nL'entrée: " + dn + " est détruite." );
- lc.disconnect();
- }
- catch( LDAPException e )
- {
- if ( e.getResultCode() == LDAPException.NO_SUCH_OBJECT )
- System.err.println( "Erreur: L'entrée n'existe pas" );
- else if ( e.getResultCode() == LDAPException.INSUFFICIENT_ACCESS_RIGHTS )
- System.err.println( "Erreur: Vous n'avez pas les permissions" );
- else
- System.err.println( "Erreur: " + e.toString() );
- }
- catch( UnsupportedEncodingException e )
- {
- System.out.println( "Erreur: " + e.toString() );
- }
- }
- }
|
|