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 :

realm "basic" spécifique à une application


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Points : 14
    Points
    14
    Par défaut realm "basic" spécifique à une application
    Bonjour,

    je n'arrive pas à comprendre s'il est possible ou non d'utiliser un fichier "plat" (xml) spécifique à une application pour gérer des utisateurs et si oui, ce qu'il faut faire.

    Dans tous les exemples que j'ai trouvé, l'authentification est faite:
    - soit à partir du système "basic" de Tomcat, ce qui nécessite d'ajouter les rôles et les utilisateurs dans le fichier "tomcat-users.xml" de la config générale,
    - soit à partir de bases de données relationelles ou LDAP.

    D'après ce que j'ai compris il serait possible de créer un "realm" dans un contexte spécifique à une application, avec la possibilité dans ce cas de crypter (par exemple en MD5) les mots de passe uniquement pour les utilisateurs de cette appli.
    Est-ce possible avec un fichier XML également spécifique?
    Est-ce qu'il suffit de créer des paramètres de configuration ou est-ce qu'il faut ajouter du code java?
    Est-ce qu'il y a des exemples ou des tutoriaux?

    Merci

  2. #2
    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
    tomcat-user n'est qu'un exemple. Le realm qui utilise ce fichier prend en paramètre (attribut pathname) un nom de fichier, rien ne t'empêche d'utiliser le tiens. Ce type de realm n'est pas conseillé en production.

    Ensuite t'as les autres realms tomcat fournis en base:
    JDBCRealm, DataSourceRealm, le jndirealm, le jaasrealm et le userdatabaserealm.

    Tous les realm fournis avec tomcat supportent le stockage d'un hash plutot que du mot de passe claire, via l'attribut digest (qui peut prendre par exemple SHA, MD2, MD5)


    Ensuite si ce n'est pas suffisant, tu peux coder ton propre realm en implémentant l'interface Realm.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    tomcat-user n'est qu'un exemple. Le realm qui utilise ce fichier prend en paramètre (attribut pathname) un nom de fichier, rien ne t'empêche d'utiliser le tiens. Ce type de realm n'est pas conseillé en production.
    D'après ce que j'ai compris, c'est déconseillé en production parce que le fichier "tomcat-users" est celui de l'ensemble du serveur:
    1. les modifs ne sont prises en compte qu'après redémarrage du serveur.
    2. ce sont les administrateurs du serveur qui peuvent faire les modifs, mais pas les administrateurs de l'appli.

    Le fichier "tomcat-users" (et son chemin) est défini en dur dans le catalina.jar.

    Est-ce qu'il est possible de faire un fichier "appli-users", dans un répertoire de l'appli uniquement en configurant le "web.xml" et en créant un "context.xml" de l'appli? ou est-ce qu'il faut, en plus, faire une implémentation complète spécifique?

    Ensuite t'as les autres realms tomcat fournis en base:
    JDBCRealm, DataSourceRealm, le jndirealm, le jaasrealm et le userdatabaserealm.
    Quelles différences entre "dataSourcerealm", "userdatabaserealm" et "memorybasedrealm"?

    Merci

  4. #4
    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
    les différents realms sont présentés dans la doc de tomcat, merci de la lire. Pour ce qui est du tomcat-user.xml, comme je l'ai dit tu peux prendre un autre fichier en changeant le pathname dans la définition du realm ton ta webapplication (fichier META-INF/context.xml). Si il n'est pas recommandé en production c'est uniquement parce qu'il faut redémarrer la webapplication pour prendre en compte les changements.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Points : 14
    Points
    14
    Par défaut
    J'ai réussi en déclarant la "Resource" (fichier monAppli-users.xml) dans la partie <GlobalNamingResources> du "server.xml".

    En revanche, si j'essaie de déclarer la ressource dans le "context.xml" de mon appli, ça ne fonctionne pas. Je ne suis pas sur que ce soit possible ... ou alors c'est un problème de chemin? Je ne trouve pas la doc Tomcat très claire sur ces questions et, en tout cas, je n'ai trouvé aucun exemple.

    merci

  6. #6
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <context ....>
     
     
    <Realm className="org.apache.catalina.realm.MemoryRealm" pathname="conf/monAppli-users.xml" digest="MD5">
    </Realm>
    </context>

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/02/2012, 15h53

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