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

JSF Java Discussion :

problème bizzarre lors du forward au niveau du Filter


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 45
    Par défaut problème bizzarre lors du forward au niveau du Filter
    Bonjour,

    Je débute sous JSF et j'ai une modification à apporter à mon appli. Il s'agit de tester si l'utilisateur à l'accès à l'application. S'il n'a pas accès on le redirige vers un écran avec un message et des liens.

    J'effectue le test via une classe qui dérive de Filter.
    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
    public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
      HttpSession session =  ((HttpServletRequest) request).getSession(true);
      String pathUrl = ((HttpServletRequest) request).getContextPath();
      userSession = (UserSession) session.getAttribute(GlobalConstants.USER_SESSION);
      fwsLogger.debug("[RoleFilter- In] userSession est à null, nous allons le créer");
     
      if (userSession == null) {
    	//code de l'appel service et de valorisation du Bean UserSession
    	}catch (Exception se) {
    	//gestion de mon excpetion service.
    	} 
    	} 
      if (pathUrl.contains("hmo")&& !userSession.isRoleHmo()){
    		request.getRequestDispatcher("/faces/habil_error.jsp").forward(request, response);
    		return;
    	  }
      chain.doFilter(request, response);
     
      }
    Une chose bizzarre arrive : lorsque j'effectue le forward après le test de vacuité de l'objet UserSession, il m'affiche une page avec une erreur javascript (il s'agit bien de ma jsp mais affichée sans la mise en page).
    Lorsque je met le code à l'intérieur du test de vacuité du UserSession, c'est nickel.
    Est ce que quelqu'un aurait une piste?

    Merci d'avance pour vos réponses et/ou vos questions!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 45
    Par défaut
    Un petit up pour dire que j'ai résolu le problème. Au cas où ça intéreserai quelqu'un.
    En fait, le problème vient du fait que dans mon web.xml j'ai configuré mon objet Filter pour qu'il soit exécuté sur toutes mes jsp (<url-mapping>faces/*</url-mapping>.

    Le problème qui arrive lorsque j'effectuais le redirect en dehors du test de nullité de l'objet userSession, est que le filtre était rappelé. Un redirect était donc encore demandé sur le même contexte alors que l'objet response (de type ServletRequest) était déja commité.

    Apparemment au bout d'un moment, l'appel au filtre arrète de boucler pour afficher la page jsp mais, et je ne sais pour quelle raison , le style css disparait!

    Il suffisait (façon de parler car en fait j'ai eu d'autres problèmes par la suite) de redéfinir le mapping du filtre en demandant de ne l'executer que sur /faces/jsp/*.

    Autre bizzarrerie que j'ai remarqué et que j'ai contourné : l'url est en "retard" d'un appel jsp!
    En effet, le premier appel mène vers une paged'erreur d'habilitation avec le menu.
    Sur le menu, on a des liens vers des pages de l'application.
    Si on clique sur l'un des liens, on demande une jsp qui se situe dans le dossier /jsp et le filtre devrait être appelé.
    Sauf que sur l'url c'est toujours la page habil_error.jsp et donc le filtre n'est pas appelé!!!!!
    Quand on reclique une deuxième fois, là c'est bon!

    Si quelqu'un sait d'où ce problème peut venir, merci d'avance de m'éclairer!

    En attendant je vais m'acheter un livre sur JSF et le bouquiner.

Discussions similaires

  1. WMI Problème RPC lors d'un appel de fonction
    Par arsenik dans le forum Langage
    Réponses: 1
    Dernier message: 02/11/2006, 13h10
  2. [C#] problème scintillement lors du changement de panel
    Par chasse dans le forum Windows Forms
    Réponses: 3
    Dernier message: 04/10/2006, 15h00
  3. Problème internet lors de l'installation de MinGW 5.0.3
    Par eriandel dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/09/2006, 11h38
  4. Réponses: 7
    Dernier message: 03/01/2006, 22h42
  5. [VB.NET] Problème étrange lors de la création de BDD
    Par Playmo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/03/2005, 22h25

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