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

JDBC Java Discussion :

[POSTGRE] Problème d'authentification


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2008
    Messages : 79
    Points : 70
    Points
    70
    Par défaut [POSTGRE] Problème d'authentification
    Bonjours,

    Je suis en train de créer un logiciel auquel plusieurs utilisateurs pourront ce connecter. Chaque utilisateur possède des droits d'un groupe, pour faire la différence entre les utilisateurs qui auront les droits ou pas de modifier les données. Pour faciliter l'administration de ces utilisateurs j'ai créé une interface de gestion d'utilisateur, qui ne peut s'ouvrir que lorsque l'admin ce connecte. Grâce à cette interface il peut créer, modifier et supprimer les utilisateurs.

    Mais quand je veut me connecter à ma base de donnée avec un utilisateur créé par l'administrateur par le biais de l'interface, la connexion est refusé. Pourtant l'utilisateur est belle et bien créé, car en vérifiant dans la liste des utilisateurs du logiciel SQL Manager Lite for Postgre, l'utilisateur y est affiché. Il possède bien des droits de se connecter à la base, et il a un mot de passe.

    Or ce qui est bizarre, c'est que lorsque je modifie le mot de passe de l'utilisateur avec le logiciel SQL manager, la connexion à la base de donnée s'effectue correctement avec mon logiciel.

    J'ai testé quelques solutions :
    - J'ai changer l'encryption du mot de passe, qui était en md5, en encryption Postgre.
    - J'ai rajouté une requête qui modifie le mot de passe juste après celle qui créer l'utilisateur.
    - J'ai vérifier le fichier pg_hba qui possède ces infos :
    # IPv4 local connections:
    host all all 127.0.0.1/32 password
    Mais aucune de ces solutions n'a marché.

    Voici le code qui créer mes utilisateurs :
    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
     
    try {
            //Chargement du driver
            Class.forName("org.postgresql.Driver");
     
            System.out.println("Driver OK!");
     
            String url = "jdbc:postgresql://localhost:5432/db_users";
            String user = "admin";
            String passwd = "mpadmin";
     
            //Connexion à la base de donnée avec l'utilisateur admin	
            conn = DriverManager.getConnection(url, user, passwd);
            System.out.println("Connection effective !");
     
            //Création du statement	
            state = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
     
            //Execution de la requête qui créer l'utilisateur
    	state.execute("CREATE ROLE \"" + jtfPseudo.getText() + "\" LOGIN PASSWORD '" + strMotdepasse + "' NOCREATEDB NOCREATEUSER;");
    }catch (Exception e1){
            e1.printStackTrace();
    }

    Donc je pense qu'il n'y a pas d'erreurs dans la création d'utilisateur puisque aucunes erreurs n'est affichées, et que l'utilisateur est affiché dans la liste des utilisateurs de SQL Manager.

    Voici le code qui permet de ce connecter à la base :

    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
     
    try{
            Class.forName("org.postgresql.Driver");
            System.out.println("Driver OK!");
     
            String url = "jdbc:postgresql://localhost:5432/db_test";
            String user = login.getText();
            String passwd = String.valueOf(password.getPassword());
     
            Connection conn = DriverManager.getConnection(url, user, passwd);
            conn.setAutoCommit(false);
            System.out.println("Connection effective !");
     
            state = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    	}catch (Exception e1) {
    		e1.printStackTrace();
            }

    Bon là par contre il me lève une exception qui est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    org.postgresql.util.PSQLException: FATAL: password authentication failed for user "erouan"
    	at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:275)
    	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:94)
    	at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
    	at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>

    Mais quand je modifie le mot de passe sur SQL Manager, la connexion s'effectue.

    Donc voila je n'ai pas trouvé d'autre solution pour régler ce problème. Je pense que c'est surement un problème d'encryptage, mais je ne vois pas du tout comment régler ça, à par modifier le fichier pg_hda et mettre une méthode d'authentification "trust". Mais là on oublie la sécurité.

    Si vous voulez plus de précision n'hésitez à demander et merci d'avance pour vos réponses .

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2008
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    Bonjours,

    Je n'ai toujours pas trouvé de solution au problème. Alors j'ai adopté une autre stratégie de d'authentification.

    J'ai créé un seul utilisateur administrateur et une base de donnée "user". C'est donc le logiciel qui va gérer tout seul les droits d'accès des utilisateurs.

    Si vous avez besoin de plus de précision n'hésitez pas à me demander.

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

Discussions similaires

  1. [Tomcat] Problème d'authentification au Proxy
    Par Tangi29 dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 12/06/2006, 10h39
  2. [POSTGRES] Problème stabilité de ma BD
    Par julienOriano dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 27/10/2005, 14h07
  3. [PostGres] Problème installation PostGres sous Windows
    Par Torpille dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 27/08/2004, 16h05
  4. [POSTGRES] pb configuration authentification
    Par Fyna dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 19/06/2003, 19h16
  5. [Class/PHP/Postgres] Problème de modélisation...
    Par k-reen dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 27/02/2003, 08h49

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