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

Shell et commandes GNU Discussion :

Ldapsearch et attributs renvoyés : problème d'accents !


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Janvier 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 51
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Janvier 2017
    Messages : 38
    Points : 24
    Points
    24
    Par défaut Ldapsearch et attributs renvoyés : problème d'accents !
    Bonjour,

    Je fais actuellement la recherche suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ldapsearch -H ldaps://ldap.titi.fr -x -u -b ou=people,dc=titi,dc=fr -D  "cn=toto ou=administrators,dc=titi,dc=fr" -w "grrrr"  "(&(objectclass=person)(essai=OFFI)(eduPersonAffiliation=employee))"  sn givenName >  tutu.txt
    Cette requête fonctionne très bien sauf pour les personnes ayant un accent dans leurs sn et/ou givename.==> ça donne des trucs comme ça : givenName:: QWduw6hz au lieu d'Agnès
    J'ai donc tenter de modifier le fichier tutu en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iconv -f ascii -t utf-8 tutu.txt
    Mais rien ne fonctionne.
    Comment faire pour récupérer correctement les attributs avec accents ?

    Merci d'avance pour vos réponses,
    fredNv

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Points : 5 849
    Points
    5 849
    Par défaut
    C'est un vieux problème (au moins 10 ans)...
    En cherchant ldapsearch utf8 sur internet, on trouve pas mal d'infos sur ce forum :
    https://openldap-technical.openldap....-utf-8-results

    En gros, s'il n'y a qu'un seul :, alors on a le résultat directement.
    S'il y en a 2 ::, alors il faut décoder avec base64 --decode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    USER_CITY2="$(ldapsearch -LLL -C -x \
    -h $VAR_DC \
    -b $VAR_SEARCHBASE \
    -D $VAR_BINDER \
    -w $VAR_PWBINDER \
    '(mail='$USER')' \
    l)"
    if [[ $USER_CITY2 == *l::* ]]
    then USER_CITY="$(echo "$USER_CITY2" | sed -n -e 's/^.*l:: //p' | base64 --decode)";
    else USER_CITY="$(echo "$USER_CITY2" | sed -n -e 's/^.*l: //p')";
    fi

  3. #3
    Membre à l'essai
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Janvier 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 51
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Janvier 2017
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    Merci pour les informations.Depuis deux jours je galère à essayer de transformer ce qui est codé en base64.
    Mais ne maîtrisant pas du tout les scripts shell, je ne vois pas comment récupérer les deux résultats USER_CITY dans le cas du decode et dans le cas où on ne le fait pas , le tout dans un beau fichier.
    Une petite aide ???

    merci d'avance,
    fredNV

  4. #4
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 320
    Points : 12 878
    Points
    12 878
    Par défaut
    Pour pouvoir aider, faudrait fournir un exemple de sorti de la commande ldapsearch (quelques lignes de ton fichier tutu) car on n'a pas tous un ldap d'installé...

  5. #5
    Membre à l'essai
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Janvier 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 51
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Janvier 2017
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    Pour mon filtre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ldapsearch -H ldaps://ldap.titi.fr -x -u -b ou=people,dc=titi,dc=fr -D  "cn=toto ou=administrators,dc=titi,dc=fr" -w "grrrr"  "(&(objectclass=person)(essai=OFFI)(eduPersonAffiliation=employee))"  sn givenName >  tutu.txt
    on obtient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # dupont, people, titi.fr
    dn: uid=dupont,ou=people,dc=titi,dc=fr
    supannCivilite: MME
    grrDateBirth: 19671215000000Z
    sn: Dupont
    givenName:: R2HDq3RhbmU=
    Par contre je n'arrive pas à sortir ce qu'on obtient les indications de jack-ft.

    Merci d'avance pour votre aide,

    fredNV

  6. #6
    Membre à l'essai
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Janvier 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 51
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Janvier 2017
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Re-bonjour,

    Si je lance le script suivant avec les indications de jack-ft :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     USER_CITY2=="$(ldapsearch -H ldaps://ldap.titi.fr -x -u -b ou=people,dc=titi,dc=fr -D  "cn=toto ou=administrators,dc=titi,dc=fr" -w "grrrr"  "(&(objectclass=person)(essai=OFFI)(eduPersonAffiliation=employee))"  sn givenName"
    if [[ $USER_CITY2 == *l::* ]]
    echo "coucou: $USER_CITY2"
    then USER_CITY="$(echo "$USER_CITY2" | sed -n -e 's/^.*l:: //p' | base64 --decode)" & echo $USER_CITY ;
    else USER_CITY="$(echo "$USER_CITY2" | sed -n -e 's/^.*l: //p')";
    fi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    & echo $USER_CITY ou && echo $USER_CITY
    ne me renvoie rien : pourquoi ? alors que le résultat de la recherche ldap est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # dupont, people, titi.fr
    dn: uid=dupont,ou=people,dc=titi,dc=fr
    sn: Dupont
    givenName:: R2HDq3RhbmU=
    Merci d'avance pour vos retours,

    fredNV

  7. #7
    Membre à l'essai
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Janvier 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 51
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Janvier 2017
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Après plusieurs essais je m'aperçois que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if [[ $USER_CITY2 == *givenName::* ]]
    ne marche pas et je ne comprends pas pourquoi : certainement une erreur de syntaxe ??

    FredNV

  8. #8
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 320
    Points : 12 878
    Points
    12 878
    Par défaut
    voici un exemple (si ta sortie est exacte) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ cat tutu.txt
    # dupont, people, titi.fr
    dn: uid=dupont,ou=people,dc=titi,dc=fr
    supannCivilite: MME
    ujmDateBirth: 19671215000000Z
    sn: Dupont
    givenName:: R2HDq3RhbmU=
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ sed '/::/s/\(.*:: \)\(.*\)/echo \1 $(echo \2 |base64 --decode)/e' tutu.txt
    # dupont, people, titi.fr
    dn: uid=dupont,ou=people,dc=titi,dc=fr
    supannCivilite: MME
    ujmDateBirth: 19671215000000Z
    sn: Dupont
    givenName:: Gaëtane
    Ce qui pourrait faire au final:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ldapsearch -H ldaps://ldap.titi.fr -x -u -b ou=people,dc=titi,dc=fr -D  "cn=toto ou=administrators,dc=titi,dc=fr" -w "grrrr"  "(&(objectclass=person)(essai=OFFI)(eduPersonAffiliation=employee))"  sn givenName | sed '/::/s/\(.*:: \)\(.*\)/echo \1 $(echo \2 |base64 --decode)/e' > tutu.txt

  9. #9
    Membre à l'essai
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Janvier 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 51
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Janvier 2017
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup, ça marche ...enfin cette partie fonctionne parfaitement !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une fonction avec des attributs non obligatoires
    Par YanK dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2002, 14h39
  2. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 16h33
  3. Lire un attribut dans un fichier XML en C++
    Par ti.k-nar dans le forum XML
    Réponses: 2
    Dernier message: 14/10/2002, 16h22
  4. fonction renvoyant un tableau en argument
    Par Jones dans le forum Langage
    Réponses: 6
    Dernier message: 30/09/2002, 19h20
  5. comment changer d'attribut de fonte dans un Tlabel?
    Par sb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/08/2002, 17h53

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