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 :

Récupération d'informations dans le LDAP


Sujet :

Sécurité Java

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2013
    Messages : 117
    Points : 46
    Points
    46
    Par défaut Récupération d'informations dans le LDAP
    Bonjour,

    Je dois récupérer les informations d’une personne dans un annuaire LDAP.
    Je fais la récupération en utilisant les annotations comme cela :

    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
     
    @Entry(objectClasses={"inetOrgPerson", "person",  "top"})
     
    public class PersonneLdap {
     
        @Id
        private Name Dn;
     
       @Attribute(name="uid")
       private final String identifiant = null;
     
        @Attribute(name="sn")
        private final String nom = null;
     
        @Attribute(name="privateInfos")
        private final String dateNaissance = null;
     
        @Attribute(name="privateInfos:placeOfBirth")
        private final String lieuNaissance = null;
    Aucun probleme pour l'UID est le SN.
    Mon soucis est que ma personne a un attribut nommé « privateInfos » dans lequel se trouvent plusieurs informations différentes (par exemple dateOfBirth, placeOfBirth…).

    Je ne parvient pas à récupérer ce que je souhaite en écrivant mes @Attribute ainsi :

    En mettant @Attribute(name="privateInfos"), j’obtiens : "entryTechUID::290183". (une sorte d’identifiant d’objet).

    En mettant @Attribute(name="privateInfos:placeOfBirth"), j’obtiens null.

    Quelqu’un saurait la valeur que je dois mettre dans mes @Attribute ?

    Merci beaucoup par avance.

  2. #2
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut
    Bonjour,
    Je penses que vous devriez lire attentivement ceci : http://www-public.tem-tsp.eu/~gardie...-securite.html
    Vue le nom de l'entité "privateInfos", il s'agit là de données considérées sensible. Comment êtes-vous connecté au réseau, en tant qu'administrateur du réseau ou utilisateur ?
    Si vous consultiez les mêmes données, mais celles qui vous concerne, rencontrez-vous les mêmes difficultés ?
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2013
    Messages : 117
    Points : 46
    Points
    46
    Par défaut
    Je suis connectée en tant qu'administrateur et même pour mes données personnelles je n'arrive pas à les récupérer 😁

  4. #4
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut
    Ok. Je ne m'y connais pas trop en LDAP, et je ne suis pas encore très à l'aise avec les annotations. Cependant, avec un regard purement logique, je dirai deux choses :
    1) Vous avez commis une petite erreur, mais qui s'avère révélatrice.
    En effet, dans votre extrait de code vous écrivez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        @Attribute(name="privateInfos")
        private final String dateNaissance = null;
    Je penses qu'en fait, vous auriez dû écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        @Attribute(name="privateInfos:dateOfBirth")
        private final String dateNaissance = null;
    Pour autant, vos commentaires précises que pour cette annotation, vous obtenez réponse, mais pas pour la suivante qui pointe bien vers "placeOfBirth".
    Pour moi cela veur dire que la valeur de votre attribut privateInfos n'est pas une chaîne de texte, mais des données binaires. Charge pour vous de savoir les interpréter. Et si je ne me trompes pas, privateInfos est représenté par un dcObject LDAP.

    2) Cela peut être un simple problème de syntaxe LDAP
    Êtes-vous sur de l'utilisation du ":" comme séparateur d'attributs ?
    Avez-vous essayé avec un "." par exemple ?
    Je ne connais pas le format LDIF utilisé par LDAP pour formuler ses réponses.

    Maintenant, pour aller plus loin, je penses qu'il faudrait vous adresser à votre administrateur système. Il devrait pouvoir vous éclairer sans problème. Sinon, un spécialiste LDAP passant par là devrait lui aussi comprendre.
    Quelle mécanique sollicitez-vous pour "remplir" vos instances de PersonneLdap ?
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Il serait utile à la documentation du problème que tu nous donne ce que tu obtiens quand tu récupère l'enregistrement de la personne avec des outils LDAP classiques en ligne de commande. Ca pourrait vachement éclairer sur la structure des données.

  6. #6
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut
    En fait, après une lecture plus approfondie et quelques recherches, je me permettrai de préciser ceci :
    Il faudrait peut-être supprimer vos annotations en rapport avec privateInfos dans votre classe entité PersonneLdap. Pour toutes les remplacées par une seule du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        @Attribute(name="privateInfos")
        private final infosPrivees informations = null;
    Partant du principe que infosPrivees serait une classe entité contenant elle les attributs date de naissance et lieu de naissance du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        @Attribute(name="dateOfBirth")
        private final String dateNaissance = null;
        @Attribute(name="placeOfBirth")
        private final String lieuNaissance = null;
    En effet, les données d'un LDAP sont stockée sous forme arborescente, pas tabulaire comme les bases de données traditionnelles. Ce qui signifie qu'une réponse LDAP n'est pas un tableau, mais une arborescence, et on ne lit pas une arborescence comme on lit un tableau.
    Enfin, tout cela n'est qu'une supposition qui je l'espère vous permettra de trouver une solution.
    Mais n'hésitez pas à nous en dire plus sur le mécanisme de récupération des données LDAP.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  7. #7
    Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2013
    Messages : 117
    Points : 46
    Points
    46
    Par défaut
    J'ai trouvée la solution, c'était presque ça.
    Il faut simplement récupérer les "privateInfos" dans une liste...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @Attribute(name="privateInfos")
    private List<String> privateInfos;
    Merci pour votre aide

  8. #8
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut
    Ravi que mes réflexions aient pu vous aider. Cependant, si votre problème est réglé, il faudrait indiquer votre post comme résolu !
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/08/2008, 11h08
  2. Réponses: 4
    Dernier message: 03/04/2008, 13h06
  3. [XSLT]Récupération d'information dans un fichier XML
    Par LoDev dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/01/2008, 09h36
  4. Récupération d'informations dans un état
    Par Psychose dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/06/2006, 16h37
  5. [C# express 2005] Récupération d'information dans une BDD
    Par poussinphp dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/05/2006, 22h25

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