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

Tomcat et TomEE Java Discussion :

[Authentification] Tomcat 5.5


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut [Authentification] Tomcat 5.5
    Bonjour, je travaille avec Tomcat 5.5 et je voudrais authentifier mes users par Digest (cryptage du mot de passe) sur une application Web particulière...

    Visiblement pour réaliser cela il faut mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    <login-config> 
    <auth-method>DIGEST</auth-method> 
    <form-login-config>
    ...
    Dans le web.xml de l'application (et bien sur paramétrer le realm dans le fichier context.xml ou server.xml de mon Tomcat)...
    Le soucis, c'est qu'auparavant, j'authentifiais mes users par formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    <login-config> 
    <auth-method>FORM/auth-method> 
    <form-login-config>
    ...
    Visiblement les choix que j'ai sont bien distincts:
    - Soit une authentification par Digest et donc pas de custom form pour authentifier mes users
    - Soit une authentification par Form et donc des passwords non cryptés dans mon realm...

    N'y a t il pas une solution pour avoir les deux...
    Merci d'avance...

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Je n'ai toujours pas trouvé le moyen de mélanger ses deux fonctions pour mon authentification.... je pense que je vais me résoudre à utiliser une authentification basée sur les formulaires.... sniff

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Et le couple FORM+cryptage MD5 par javascript avant le post ?
    Pas applicable ?

  4. #4
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    ssl ?

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    -Pour le cryptage MD5 je préfére éviter car j'aime pas trop ajouter du javascript pour cela je pense qu'une solution plus propre existe...

    -Pour le SSL c'est fait, néanmoins mon problème; c'est que les mots de passe sont écrit en clair en base et ça j'aime vraiment pas...

    Récapitulons, je peux utiliser SSL sur une authentification basée sur formulaire, et d'ailleurs c'est déjà "implémenter" (paramétré).

    Maintenant le mot de passe est crypté sur le réseau. Le realm récupère ce mot de passe, le déchiffre et le compare à la table d'acces (Datasource realm) pour checker l'identification du user et pour lui attribuer ses rôles.
    Je voudrais que le mot de passe stocké en base soit crypté en MD5 et décrypter par le realm uniquement pour la comparaison avec le mot de passe saisi par le user (via formulaire)...

    Une idée???

  6. #6
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Une suggestion : regarde Acegi. Si tu utilises un JdbcDaoImpl comme AuthenticationDAO tu pourras définir un PasswordEncoder de type Md5 (autres possibilités, PlainTextPasswordEncode ou ShaPasswordEncoder).

    Sinon as tu pensé à regarder les attributs d'un JDBCRealm (notamment digester) ? http://tomcat.apache.org/tomcat-5.5-doc/realm-howto.html#JDBCRealm

    Si ca ne convient toujours pas, tu implémentes ton propre Realm et le tour est joué.

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    ouaip mais pour ce projet je n'utilise pas Spring, mais uniquement Struts et hibernate... De plus je veux éviter d'ajouter trop de librairies tieces...

    Pour l'histoire d'ajout du paramètre "digest" pour mon DataSourceRealm,je l'avais déjà remarqué dans la doc officiell de Tomcat, le problème c'est que visiblement, il faut quand même spécifier "DIGEST" dans le web.xml et moi je veux FORM... Ce qui est assez problématique...

  8. #8
    ndp
    ndp est déconnecté
    Membre actif Avatar de ndp
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 227
    Points : 255
    Points
    255
    Par défaut
    Salut,

    Citation Envoyé par dlemoing
    Une suggestion : regarde Acegi. Si tu utilises un JdbcDaoImpl comme AuthenticationDAO tu pourras définir un PasswordEncoder de type Md5 (autres possibilités, PlainTextPasswordEncode ou ShaPasswordEncoder).
    Actuellement c'est la solution mis en place sur notre projet: Acegi n'est pas (plus) dependant de Spring, et cette solution a l'avantage de proposer une solution indepandante du serveur.
    Mais c'est vrai, c'est une autre librairie tierce, c'est vrai aussi que ce n'est pas base sur des standards...

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Oui je suis d'accord mais je me pose une question, je peux avoir une form-based authentification (securisée via ssl). Mes mots de passe peuvent aussi être stockés en base via l'algorithme MD5 en utilisant cette méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private String getDigestedText(String text, String algorithm) { 
       return RealmBase.Digest(text, algorithm); 
    }
    Ainsi lorsque je souhaite persister ou updater un password, je passe le password saisi dans cette moulinette avant de persister la valeur retournée par la méthode...
    Ensuite je peut déclarer mon realm en MD5 via l'ajout de l'attribut digest="MD5" dans mon élement <Realm/>. Lorsque l'utilisateur s'authentifie, le realm possède le mot de passe en clair du user. Le realm le crypte via MD5 (car l'attribut digest est déclaré dans mon realm) et le compare à la valeur en base de données qui est cryptée en MD5, c'est ca non, qu'en penses tu, ça pourrait jouer non??? (c'est une tache planifiée qui n'est pas encore à faire ....)

  10. #10
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Ben ca me semble bien être la solution, je ne comprends toujours pas où était ton problème.

    Citation Envoyé par SEMPERE Benjamin
    Oui je suis d'accord mais je me pose une question, je peux avoir une form-based authentification (securisée via ssl).
    C'est ce que je disais.
    Citation Envoyé par SEMPERE Benjamin
    Mes mots de passe peuvent aussi être stockés en base via l'algorithme MD5 en utilisant cette méthode:
    Le cryptage en base, à toi de le faire

    Citation Envoyé par SEMPERE Benjamin
    Ensuite je peut déclarer mon realm en MD5 via l'ajout de l'attribut digest="MD5" dans mon élement <Realm/>
    C'est pas ce que je disais ?

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Le coté technique est résolu, merci

  12. #12
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    bonjour, je déterre le post car je me retrouve confronté à ce problème aujourd'hui.

    En effet, je souhaite également via un formulaire fourni à l'utilisateur, le connecter à l'application.

    Déclaré dans le web.xml l'auth method="FORM"

    j'aimerais que dans le context.xml on puisse lui faire hacher le mot de passe de l'utilisateur (en MD5) et de vérifier par rapport à celui stocké dans la base de de données (jdbc) lui-même haché en MD5.

    Le problème a t-il été résolu?

    Voici mon context.xml :

    <Realm
    className="org.apache.catalina.realm.JDBCRealm" debug="99"
    driverName="org.postgresql.Driver"
    connectionURL="jdbc:postgresql://localhost:5050/tutu"
    connectionName="****"
    connectionPassword="****"
    digest="MD5"
    userTable="usr_utilisateurs" userNameCol="login" userCredCol="pass"
    userRoleTable="roles" roleNameCol="rolenom" />
    Merci d'avance pour la réponse.

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

Discussions similaires

  1. Zone authentification tomcat
    Par Demon-king dans le forum Glassfish et Payara
    Réponses: 0
    Dernier message: 10/01/2010, 19h41
  2. Jaas formulaire d'authentification tomcat
    Par rc_29 dans le forum Sécurité
    Réponses: 3
    Dernier message: 15/03/2008, 08h31
  3. Problème authentification Tomcat
    Par fabou3377 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 09/04/2007, 10h53
  4. Authentification Tomcat Par certificat
    Par nabilblk dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 24/11/2006, 18h02
  5. Authentification Tomcat sans realm
    Par ludoM dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 04/10/2006, 10h14

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