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 :

[debutant]Stocker liste d'utilisateur dans web.xml


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Points : 23
    Points
    23
    Par défaut [debutant]Stocker liste d'utilisateur dans web.xml
    bonjour,

    j'aurait besoin de vos lumieres, voici mon souci, je dois creer une appli en jsp avec le modele mvc pour mon projet et je viens de m'apercevoir que je sujet du projet demande que les utilisateur soit préenregistré dans le web.xml
    au depart je n'avais pas lu cette partie et j'a developpé mon truc en faisant un select classque sur la BdD, j'aurait aimer savoir comment est-ce qu'on peut mettre en place une liste des utilisateur autorisé dans le web.xml de ma webapp afin de pouvoir l'attaquer directement sans passer par la BdD.

    Merci d'avance pr votre aide.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 124
    Points : 159
    Points
    159
    Par défaut
    Je ne crois pas que ce soit possible de faire ça. Ce que tu peux essayer à la limite c'est définir plusieurs paramètres ayant comme nom le nom de l'utilisateur. Tu pourras ensuite les récupérer dans ton application comme tout paramètre définis dans le fichier web.xml de ton application.

    Cela dit, je pense que dans ton cas, si tu veux éviter d'utiliser une base de données, alors c'est plus simple de configurer le fichier server.xml. Il faut simplement y ajouter un "realm" dans le contexte de ton application. Ce <realm> aura la même structure que celui utilisé par le Manager de Tomcat. C'est un Realm qui cherche les utilisateurs dans un fichier XML nommé tomcat-users.xml dans le cas du Manager.


    Pour ça il faut qu'il y ait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        <ResourceParams name="UserDatabase">
          <parameter>
            <name>factory</name>
            <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
          </parameter>
          <parameter>
            <name>pathname</name>
            <value>conf/tomcat-users.xml</value>
          </parameter>
        </ResourceParams>
    Ca déclare une source de données, celle-ci étant le fichier tomcat-users.xml du répertoire conf de Tomcat.

    Puis il faut y faire référence dans le contexte de ton application:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <Context path="/nomapplication" debug="0" privileged="true" useNaming="true">
          	<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                     debug="0" resourceName="UserDatabase"/> 
    </context>
    Après dans le fichier web.xml (celui de ton application) il faut activer l'authentification, c'est l'élément <security-constraint> qui est à configurer afin de déterminer quels roles (~groupes) auront le droit de faire quelle action (méthodes http).
    Ces groupes feront référence à ceux que tu as décrit dans le fichier tomcat-users.xml.

    Bonne chance!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par yizashi
    Je ne crois pas que ce soit possible de faire ça. Ce que tu peux essayer à la limite c'est définir plusieurs paramètres ayant comme nom le nom de l'utilisateur. Tu pourras ensuite les récupérer dans ton application comme tout paramètre définis dans le fichier web.xml de ton application.
    merci pour ta réponse mais est-ce que tu peux me developper cette partie parce que je ne veus pas faire un truc aussi complexe et renter dans le server.xml
    cette solution me semble la plus adapté a mon souci et encore merci.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 124
    Points : 159
    Points
    159
    Par défaut
    Franchement je pense que la solution la plus simple et efficace c'est justement de configurer le fichier server.xml. Dans le code que je t'ai mis lors de mon dernier post, il n'y a rien à ajouter ou changer, il faut juste le coller au bon endroit je pense. Ensuite tu n'auras plus à t'occuper de la gestion de l'accès de tes utilisateurs au niveau de l'application, c'est Tomcat qui fera ça en amont.

    En effet, quand Tomcat recevra une requête de type: http://nomserveur/nomapplication alors il demandera à l'utilisateur son nom et mot de passe. Ensuite, il vérifiera dans le fichier tomcat-users.xml (à moins que tu aies changé la valeur de "pathname") que l'utilisateur existe et que le mot de passe soit correct.
    Si c'est le cas, alors il va chercher à quel groupe l'utilisateur appartient, toujours dans le même fichier. Une fois qu'il a le nom de son groupe (role), il va le confronter aux contraintes de sécurité définies dans le fichier web.xml de ton application. Ces contraintes décrivent quels groupes ont le droit de faire quels méthodes. Je suppose que toi il faudrait autoriser un groupe à faire les méthodes post et get et mettre tous tes utilisateurs comme membre de ce groupe.

    Pour l'histoire des paramètres, je ne peux pas trop t'aider, je sais juste que pour déclarer un paramètre on doit suivre une syntaxe comme ça, y'en a peut-être d'autres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <init-param>
                <param-name>david</param-name>
                <param-value></param-value>
                <description>
                      blabla
                </description>
            </init-param>
    Je sais également que ces paramètres servent en principe à initialiser l'application et qu'on doit donc pouvoir les récupérer et savoir si le paramètre "david" existe par exemple.

Discussions similaires

  1. [debutant] ANT replace dans web.xml
    Par totoche dans le forum ANT
    Réponses: 2
    Dernier message: 15/10/2009, 23h54
  2. [Tomcat] configuration d'une page d'erreur dans web.xml
    Par Super Castor dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 08/04/2009, 16h58
  3. Créer des context-param dans web.xml
    Par c-ve dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 13/02/2007, 21h39
  4. [débutant] gestion des exceptions dans web.xml
    Par jgaslain dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 06/02/2007, 10h46
  5. [JSP]recuperer session-timeout dans web.xml
    Par seb_fou dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/05/2004, 17h01

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