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

avec Java Discussion :

Erreur compilation "not abstract and does override"


Sujet :

avec Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 55
    Points : 44
    Points
    44
    Par défaut Erreur compilation "not abstract and does override"
    Bonjour, j'ai installé le bundle de Bonitasoft et j'essaie de gérer l'authentification par LDAP. La multiple doc que j'ai lue à ce sujet indique que je dois compiler ce code
    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
     
    package com.sun.security.auth.module;
    import org.ow2.bonita.services.AuthenticationService;
    import org.ow2.bonita.facade.exception.UserNotFoundException;;
     
    public class SimpleLdapAuth implements AuthenticationService 
    {
        private String persistenceServiceName;
     
        public SimpleLdapAuth(String persistenceServiceName)
        {
            super();
            this.persistenceServiceName = persistenceServiceName;
        }
     
        //**
        //* Determines if the user should have amdin accesses to the bonita interface
        //* Let's say that Domain Admins have that privilege
        //**
        // It looks like by "admin" here, it means whether the user can administer
        // users, roles,
        // etc. in the UserXP.
        public boolean isUserAdmin(String username) throws UserNotFoundException
        {
            if (username.equals("admin"))
            {
                return true;
            }
            else 
            {
            	return false;
            }
        }
     
        //**
        //* @return always true. If the LDAP request failed before, it doesn't matter
        //*         (?) Necessary to implement interface
        //**
        public boolean checkUserCredentials(String username, String password) 
        {
            return true;
        }
    }
    Ma ligne de commande est la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javac -cp <path>\bonita-server.jar SimpleLdapAuth.java
    cette dernière me retourne une erreur que je ne comprends pas [d'autant plus que ça semble marcher pour d'autres]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    com.sun.security.auth.module.SimpleLdapAuth is not abstract and does override abstract methode checkUserCredentialsWithPasswordHash(java.lang.String,java.lang.String) in org.ow2.bonita.services.AuthentificationServices
    Public class SimpleLdapAuth implements AuthentificationService
    Que veut dire exactement ce message et surtout, pourquoi l'override marche pour certains et pas chez moi?

    Merci

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Il attend

    "checkUserCredentialsWithPasswordHash"

    mais toi tu as defini

    "checkUserCredentials"

    Ca serait pas ca ton problème ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 55
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Il attend

    "checkUserCredentialsWithPasswordHash"

    mais toi tu as defini

    "checkUserCredentials"

    Ca serait pas ca ton problème ?
    Salut et merci pour ton ultra rapide réponse. J'ai essayé d'y passer sans succès.

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Citation Envoyé par stever50 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    com.sun.security.auth.module.SimpleLdapAuth is not abstract and does override abstract methode checkUserCredentialsWithPasswordHash(java.lang.String,java.lang.String) in org.ow2.bonita.services.AuthentificationServices
    Public class SimpleLdapAuth implements AuthentificationService
    Que veut dire exactement ce message et surtout, pourquoi l'override marche pour certains et pas chez moi?

    Merci
    Le message dit que la classe SimpleLdapAuth n'implémente pas la méthode checkUserCredentialsWithPasswordHash(java.lang.String,java.lang.String) défini par l'interface AuthentificationService. Comme SimpleLdapAuth n'est pas une classe abstraite, tu dois implémenter cette méthode et la rajouter à la classe.
    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
    package com.sun.security.auth.module;
     
    import org.ow2.bonita.services.AuthenticationService;
    import org.ow2.bonita.facade.exception.UserNotFoundException;;
     
    public class SimpleLdapAuth implements AuthenticationService {
     
        private String persistenceServiceName;
     
        public SimpleLdapAuth(String persistenceServiceName) {
            this.persistenceServiceName = persistenceServiceName;
        }
     
        /**
         * Determines if the user should have amdin accesses to the bonita interface
         * Let's say that Domain Admins have that privilege
         */
        // It looks like by "admin" here, it means whether the user can administer
        // users, roles,
        // etc. in the UserXP.
        public boolean isUserAdmin(String username) throws UserNotFoundException {
            if (username.equals("admin")) {
                return true;
            } else {
                return false;
            }
        }
     
        /**
         * @return always true. If the LDAP request failed before, it doesn't matter
         *         (?) Necessary to implement interface
         */
        public boolean checkUserCredentials(String username, String password) {
            return true;
        }
     
        /**
         * @return always true. If the LDAP request failed before, it doesn't matter
         *         (?) Necessary to implement interface
         */
        public boolean checkUserCredentialsWithPasswordHash(String username, String password) {
            return true;
        }
     
    }
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  5. #5
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, l'erreur indique que tu dois implémenter la méthode checkUserCredentialsWithPasswordHash avec la même signature (paramètre et retour)

    Cette méthode est déclarée abstract dans AuthenticationService afin de forcer toutes les classes (non abstraites) qui en héritent à implémenter cette méthode. De cette façon, la méthode peut-être appelée dans une autre partie de code qui ne sait pas forcément qui va implémenter la classe d'authentification.

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 55
    Points : 44
    Points
    44
    Par défaut
    Merci à CheryBen et le y@m's pour votre précieuse aide et explication!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/04/2014, 11h16
  2. Réponses: 3
    Dernier message: 09/07/2009, 15h58
  3. Réponses: 3
    Dernier message: 19/04/2007, 11h34
  4. Réponses: 2
    Dernier message: 20/03/2006, 14h38
  5. Réponses: 4
    Dernier message: 18/01/2006, 21h19

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