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

Wildfly/JBoss Java Discussion :

Securité et exception avec JSF


Sujet :

Wildfly/JBoss Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Par défaut Securité et exception avec JSF
    Salut,
    comme etant debutant dans le framework JSF, j'ai trop cherche sur le traitement des exceptions avec JSF. en faite mon objectif est de faire secirisé l'application (Site) et ceux via la redirection de toutes les erreurs qui peuvent générées vers une page JSF nommée pageError.jsp par exemple, je chercche en faite à eviter toutes les pages comme celle la
    masquer les infos sur la version de JBoss et tous
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    HTTP Status 500 - 
     
    --------------------------------------------------------------------------------
     
    type Exception report
     
    message 
     
    description The server encountered an internal error () that prevented it from fulfilling this request.
     
    exception 
     
    javax.servlet.ServletException: Cannot find FacesContext
    	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
    	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
    	org.apache.jsp.Accueil_jsp._jspService(org.apache.jsp.Accueil_jsp:92)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
     
     
    root cause 
     
    javax.servlet.jsp.JspException: Cannot find FacesContext
    	javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:405)
    	com.sun.faces.taglib.jsf_core.ViewTag.doStartTag(ViewTag.java:105)
    	org.apache.jsp.Accueil_jsp._jspx_meth_f_view_0(org.apache.jsp.Accueil_jsp:107)
    	org.apache.jsp.Accueil_jsp._jspService(org.apache.jsp.Accueil_jsp:83)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
     
     
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.
     
     
    --------------------------------------------------------------------------------
     
    Apache Tomcat/5.5.9
    parmi les sources des erreurs par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dans la barre de navigation "URL" au lieu de demander la page "Accueil.jsp" je tape par exemple "Accueil.aspx" la servlet se crach et affiche les informations déja à eviter
    il faut que je fait la redirection vers la page pageError.jsp lors de chaque exception capturée.

    j'ai consulté pas mal de lien mais j'ai pas eu trop de visibilité sur la procedure parmi les points vues la definition d'une servlet personnelle comme indique le lien suivant http://www.developpez.net/forums/d17...on-exceptions/

    j'ai edité mon fichier web.xml en ajoutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <error-page>
            <error-code>100</error-code>
            <location>/redirectErreur.jsp</location>
        </error-page>
    le but globale est de masquer les informations sur le système.

    Merci pour vos aides, je pense que j'ai bien eclairci les choses.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    déjà, regarder si jboss ne permet pas de cacher ces nformation dans sa config. Pour la webapp, il suffit de définir dans ton web.xml une page d'erreur qui s'applique à toutes les exceptions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <error-page>
            <exception>java.lang.Exception</exception>
            <location>/redirectErreur.jsp</location>
        </error-page>
    Si tu veux mapper sur tout les error code (4xxx, 5xxx) tu va avoir un très long web.xml

  3. #3
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Par défaut
    voila une partie de mon fichier web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <welcome-file-list>
            <welcome-file>/Accueil.jsp</welcome-file>
            <welcome-file>Accueil.jsp</welcome-file>
        </welcome-file-list>
        <!-- Traitement des exceptions   -->
        <error-page>
            <exception-type>javax.servlet.ServletException</exception-type>
            <location>/redirectErreur.jsp</location>
        </error-page>
        <error-page>
            <exception-type>java.lang.Exception</exception-type>
            <location>/redirectErreur.jsp</location>
        </error-page>
    </web-app>
    j'ai traité deux type d'exception donc apres cette modif lorsque je fais dans la barre de navigation Accueil.jsp l'exception de type javax.servlet.ServletException est généré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    exception 
     
    javax.servlet.ServletException: Cannot find FacesContext
    	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
    	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
    	org.apache.jsp.Accueil_jsp._jspService(org.apache.jsp.Accueil_jsp:92)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
    donc je devrais etre sur la page pageError.jsp n'est ce pas!!!!!??
    merci pour l'aide

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    non, tu devrais arriver sur redirectErreur.jsp. La page existe-t-elle?

    Note que ce système suppore que ce ne soit pas la servlet JSF qui traite elle-même l'erreur ^^

  5. #5
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Par défaut
    Oui la page redirectErreur.jsp exist dans le context de projet avec d'autre pages
    mais sa marche pas encore j'ai meme utilisé les code d'exceptions
    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
    20
    21
    22
    23
     <welcome-file-list>
            <welcome-file>/Accueil.jsp</welcome-file>
            <welcome-file>Accueil.jsp</welcome-file>
        </welcome-file-list>
     
        <!-- Traitement des exceptions   -->
        <error-page>
            <exception-type>javax.servlet.ServletException</exception-type>
            <location>/redirectErreur.jsp</location>
        </error-page>
        <error-page>
            <exception-type>javax.servlet.jsp.JspException</exception-type>
            <location>/redirectErreur.jsp</location>
        </error-page>
        <error-page>
            <error-code>500</error-code>
            <location>/redirectErreur.jsp</location>
        </error-page>
        <error-page>
            <error-code>404</error-code>
            <location>/redirectErreur.jsp</location>
        </error-page>
    </web-app>
    mais sa marche pas encore
    lorsque je fait Accueil.jsp sa donne l'exception suivant
    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
    20
    21
    22
    exception 
     
    javax.servlet.jsp.JspException: Cannot find FacesContext
    	javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:405)
    	com.sun.faces.taglib.jsf_core.ViewTag.doStartTag(ViewTag.java:105)
    	org.apache.jsp.Accueil_jsp._jspx_meth_f_view_0(org.apache.jsp.Accueil_jsp:107)
    	org.apache.jsp.Accueil_jsp._jspService(org.apache.jsp.Accueil_jsp:83)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
     
     
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.
     
     
    --------------------------------------------------------------------------------
     
    Apache Tomcat/5.5.9
    et lorsque je fais Accueil.jsfffffppppp j'obtient ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    type Status report
     
    message /OMSWebClient/Accueil.jspddd
     
    description The requested resource (/OMSWebClient/Accueil.jspddd) is not available.
     
     
    --------------------------------------------------------------------------------
     
    Apache Tomcat/5.5.9
    sachant je devrais etre sur la page redirectErreur.jsp ?

    Merci pour les informations et tous l'aide fourni??

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    et que dit une tentative d'affichage de '/OMSWebClient/redirectErreur.jsp' ?

  7. #7
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Par défaut
    pas de reponse à ce problème dans le forum, je suis encore preneur!

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    ton serveur ne peux pas afficher une page jsp, car, toutes les requêtes passent par la servlet JSF,
    pour contourner le problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <error-page>
            <exception-type>java.lang.NullPointerException</exception-type>
            <location>/redirectErreur.jsf</location>
    </error-page>
    il faut créer un fichier nommé redirectErreur.jsf dans le meme endroit que redirectErreur.jsp, pour ne pas avoir l'erreur fichier introuvable..

  9. #9
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Par défaut
    Merci Sinper pour l'aide, j'ai appliqué les modifications et les informations renseignées comme vous avez indiquer dans le fichier web.xml et j'ai crée le fichier redirectErreur.jsf
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <!-- Traitement des exceptions  -->
     
        <error-page>
            <exception-type>java.lang.NullPointerException</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page>   
        <error-page>
            <exception-type>javax.faces.FacesException</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page>
        <error-page>
            <exception-type>javax.faces.el.EvaluationException</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page>    
        <error-page>
            <exception-type>javax.servlet.ServletException</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page>
        <error-page>
            <exception-type>javax.servlet.jsp.JspException</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page>
        <error-page>
            <exception-type>java.lang.OutOfMemoryError</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page> 
        <error-page>
            <exception-type>403</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page>
    mais le resultat est que l'exception est intercepte (il apparait dans la console de JBoss) mais la redirection ne se fait pas, il reste toujours dans la meme pas page?

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    on peut voir l'intégralité du web.xml?

  11. #11
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Par défaut
    voila l'integralté de fichier web.xml

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
        <display-name>OrdreBourse</display-name>
        <session-config>
            <session-timeout>3</session-timeout>
        </session-config>
        <listener>
            <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
        </listener>
        <servlet>
            <servlet-name>Faces Servlet</servlet-name>
            <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
     
        <context-param>
            <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
            <param-value>server</param-value>
        </context-param>
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>*.jsf</url-pattern>
        </servlet-mapping>
        <login-config>
            <auth-method>FORM</auth-method>
            <form-login-config>
                <form-login-page>/Accueil.jsf</form-login-page>
                <form-error-page>/loginFail.jsf</form-error-page>            
            </form-login-config>
        </login-config>
     
        <security-role>
            <description>A admin</description>
            <role-name>admin</role-name>
        </security-role>
     
        <security-role>
            <description>A user allowed</description>
            <role-name>user</role-name>
        </security-role>
     
     
        <welcome-file-list>
            <welcome-file>/Accueil.jsp</welcome-file>
            <welcome-file>Accueil.jsp</welcome-file>
        </welcome-file-list>   
     
    <!-- Traitement des exceptions  -->
     
        <error-page>
            <exception-type>java.lang.NullPointerException</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page>   
        <error-page>
            <exception-type>javax.faces.FacesException</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page>
        <error-page>
            <exception-type>javax.faces.el.EvaluationException</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page>    
        <error-page>
            <exception-type>javax.servlet.ServletException</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page>
        <error-page>
            <exception-type>javax.servlet.jsp.JspException</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page>
        <error-page>
            <exception-type>java.lang.OutOfMemoryError</exception-type>
            <location>/redirectErreur.jsf</location>
        </error-page> 
        <error-page>
            <error-code>403</error-code>
            <location>/redirectErreur.jsf</location>
        </error-page>  
     
    </web-app>
    c'est vraiment génant. j'ai cherché par tous dans le net, je trouve que c'est la methode mais un peu bizarre.

Discussions similaires

  1. Gestion des exceptions avec JSF RI 1.2
    Par darsky dans le forum JSF
    Réponses: 5
    Dernier message: 12/11/2008, 12h25
  2. gestion d'exception avec jsf
    Par Jacobian dans le forum JSF
    Réponses: 4
    Dernier message: 24/09/2008, 14h49
  3. Réponses: 2
    Dernier message: 14/02/2005, 14h26
  4. Réponses: 3
    Dernier message: 09/11/2004, 14h43
  5. INSO Filter : "USER-defined exception" avec ctx_do
    Par Wiztiti dans le forum Oracle
    Réponses: 2
    Dernier message: 01/06/2004, 16h14

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