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

Struts 1 Java Discussion :

[RequestProcessor] méthode process : request, session ou les deux?


Sujet :

Struts 1 Java

  1. #1
    Membre du Club Avatar de nadsky
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 118
    Points : 57
    Points
    57
    Par défaut [RequestProcessor] méthode process : request, session ou les deux?
    Bonjour à tous,

    Voici le contenu de la méthode process de mon requestProcessor :
    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
     
    	CezarInfosUtilisateurFonctionnel user = (CezarInfosUtilisateurFonctionnel)session.getAttribute("user");	
    	if (user != null) {
    	    // Le user s'est conncete prealablement, maj de la ThreadLocal
    	      CezarSecuriteFonctionnelleManager.setInfosUser(user);
    	}
    	else {
    	  // Récuperation du UserPrincipal instancié par le mecanisme std
    	   java.security.Principal principal = request.getUserPrincipal();
    	   String userName = principal.getName();
     
    	   // Appel du service d'authentification
    	   user = CezarSecuriteFonctionnelleManager.login(userName);
    	   // Mise a jour la session HTTP + ThreadLocal
    	   session.setAttribute("user",user);	
    	   CezarSecuriteFonctionnelleManager.setInfosUser(user);
    		}	
    	}
    }
    Seulement voila, que dois-je passer en paramètre à ma méthode?
    Je pensais écrire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    protected void process(HttpServletRequest request,HttpSession session,
            HttpServletResponse response, ForwardConfig forward)
            throws IOException, ServletException {
    mais je ne suis pas du tout convaincue de cette écriture vu qu'elle mélange request et session.

    Pouvez-vous m'aider svp?
    Merci d'avance

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Si ta classe hérite de RequestProcessor, les paramètres de la méthode process doivent être les suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void process(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
    Si tu veux récupérer la session dans la méthode process, il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpSession session = request.getSession() ;

  3. #3
    Membre du Club Avatar de nadsky
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 118
    Points : 57
    Points
    57
    Par défaut stockage en session
    Bonjour à tous!

    Je dois vérifier qu'une instance d'une de mes classes de la couche métier est stockée en session, avant (normalement) d'écrire le code ci-dessus.

    Comment vérifier cela?
    De même, (si ce n'est pas abusé...), pouvez-vous me donner des indications sur ce que doit contenir la méthode login???
    est-ce que je peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     user = CezarSecuriteFonctionnelleManager.getInfosUser();
    dans ce cas, à quoi servirait le userName déclaré juste avant??

    La classe CezarSecuriteFonctionnelleManager contenant un thread, un getter et un setter, je vois mal ce que peut bien être la méthode login...

    Merci d'avance

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par nadsky Voir le message
    Je dois vérifier qu'une instance d'une de mes classes de la couche métier est stockée en session, avant (normalement) d'écrire le code ci-dessus.

    Comment vérifier cela?
    Tu l'as déjà fait dans ton code ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CezarInfosUtilisateurFonctionnel user = (CezarInfosUtilisateurFonctionnel)session.getAttribute("user");	
    if (user != null) { ...

  5. #5
    Membre du Club Avatar de nadsky
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 118
    Points : 57
    Points
    57
    Par défaut service d'authentification et thread
    Merci beaucoup pour ta réponse, je ne savais pas que le controle se faisait directement ici

    Par contre, j'ai un souci concernant l'appel du service d'authentification.
    En effet, ma classe CezarSecuriteFonctionnelleManager (appartenant à la couche métier) contient seulement un thread, un getter et un setter, et ne prend pas en compte la request.

    Avant, on faisiat appel à une classe de la couche présentation, appelée CezarSecuriteManager, qui contient une méthode qui prend en compte la notion de request, voici son prototypage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	public CezarInfosUtilisateur getInfoUtilisateur(HttpServletRequest requete) throws TechniqueException
    Est-il envisageable de créer une méthode login en reprenant cette méthode dans ma classe contenant le thread pour garder cette notion de request???

    Pouvez-vous m'aider,svp?C'est assez difficile pour moi d'autant plus que je maitrise assez mal struts

    Merci d'avance,

  6. #6
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par nadsky Voir le message
    Merci beaucoup pour ta réponse, je ne savais pas que le controle se faisait directement ici
    Je ne sais pas si le contrôle doit se faire ici.
    Personnellement, je n'ai jamais créé de classe qui hérite du RequestProcessor.

    Tu demandais comment vérifier qu'une instance d'une de tes classes de la couche métier est stockée en session, je t'ai juste répondu que c'est que tu fais via ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CezarInfosUtilisateurFonctionnel user = (CezarInfosUtilisateurFonctionnel)session.getAttribute("user");	
    if (user != null) { ...

Discussions similaires

  1. [XUP] 2up ou XP ou bien les deux dans le processus de développement
    Par nabilblk dans le forum Méthodes Agiles
    Réponses: 4
    Dernier message: 01/11/2007, 19h58
  2. [Sessions / htaccess] Lancer les deux
    Par newbiemac dans le forum Langage
    Réponses: 5
    Dernier message: 15/09/2007, 00h13
  3. [swing][Buffered Image] memoire et lenteur sont les deux ...
    Par pierre.zelb dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 17/08/2005, 09h38
  4. Association navigables dans les deux sens
    Par DarkNagash dans le forum Diagrammes de Classes
    Réponses: 4
    Dernier message: 13/07/2005, 15h11
  5. Connaitre les deux premier chiffres d'un input
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/01/2005, 16h50

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