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 :

Redirection Glassfish et affichage de template


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de Njörd
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 190
    Par défaut Redirection Glassfish et affichage de template
    Bonjour à tous,

    J'ai une application JEE qui utilise les realms sous Glassfish pour la gestion des droits. Tout fonctionne bien niveau authentification, vérification et redirections.

    Mon souci est au niveau de l'affichage du template. J'utilise la composition disponible avec JSF.

    Au moment de lancer l'application, Glassfish me demande une authentification avant d’accéder à la page d'accueil, cette page d'authentification s'affiche sans le template.

    Dois-je configurer le web.xml ou le glassfish.xml d'une certaine manière ou s'agit-il d'un problème d'accès aux ressources (css, images, etc) ?

    Authentification.xhtml
    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtmll/DTD/xhtml-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"  
          xmlns:h="http://java.sun.com/jsf/html"  
          xmlns:f="http://java.sun.com/jsf/core" 
          xmlns:p="http://primefaces.org/ui"
          xmlns:ui="http://java.sun.com/jsf/facelets"> 
     
            <ui:composition template="include/template.xhtml">
                <ui:define name="title">Authentification</ui:define>
                <ui:define name="content">
                    <h1>Identifiez-vous ...</h1>
                    <form method="post" action="j_security_check">
                        <h:panelGrid columns="2">
                            <h:outputLabel for="j_username" value="Username" />
                            <input type="text" name="j_username" />
     
                            <h:outputLabel for="j_password" value="Password" />
                            <input type="password" name="j_password" />
     
                            <h:outputText value="" />
                            <h:panelGrid columns="2">
                                <input type="submit" name="submit" value="Login" />
                                <h:button outcome="index" value="Cancel" />
                            </h:panelGrid>
                        </h:panelGrid>
                    </form>
                </ui:define>
            </ui:composition>
    </html>

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>index.jsf</welcome-file>
        </welcome-file-list>
     
        <security-constraint>
            <display-name>SecurityConstraintGlobal</display-name>
            <web-resource-collection>
                <web-resource-name>MSDSHostingGlobal</web-resource-name>
                <url-pattern>/*</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
            </web-resource-collection>
            <auth-constraint>
                <role-name>adminmsds</role-name>
                <role-name>professormsds</role-name>
                <role-name>studentmsds</role-name>
            </auth-constraint>
            <user-data-constraint>
                <transport-guarantee>NONE</transport-guarantee>
            </user-data-constraint>
        </security-constraint>
        
        <security-constraint>
            <display-name>SecurityConstraintAdmin</display-name>
            <web-resource-collection>
                <web-resource-name>MSDSHostingAdmin</web-resource-name>
                <url-pattern>/admin/*</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
            </web-resource-collection>
            <auth-constraint>
                <role-name>adminmsds</role-name>
            </auth-constraint>
            <user-data-constraint>
                <transport-guarantee>NONE</transport-guarantee>
            </user-data-constraint>
        </security-constraint>
        
        <security-constraint>
            <display-name>SecurityConstraintProfessors</display-name>
            <web-resource-collection>
                <web-resource-name>MSDSHostingProfessors</web-resource-name>
                <url-pattern>/professors/*</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
            </web-resource-collection>
            <auth-constraint>
                <role-name>adminmsds</role-name>
                <role-name>professormsds</role-name>
            </auth-constraint>
            <user-data-constraint>
                <transport-guarantee>NONE</transport-guarantee>
            </user-data-constraint>
        </security-constraint>
        
        <security-constraint>
            <display-name>SecurityConstraintStudents</display-name>
            <web-resource-collection>
                <web-resource-name>MSDSHostingStudents</web-resource-name>
                <url-pattern>/students/*</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
            </web-resource-collection>
            <auth-constraint>
                <role-name>adminmsds</role-name>
                <role-name>professormsds</role-name>
                <role-name>studentmsds</role-name>
            </auth-constraint>
            <user-data-constraint>
                <transport-guarantee>NONE</transport-guarantee>
            </user-data-constraint>
        </security-constraint>
        
        <login-config>
            <auth-method>FORM</auth-method>
            <realm-name>msds-jdbcrealm</realm-name>
            <form-login-config>
                <form-login-page>/authentification.jsf</form-login-page>
                <form-error-page>/erreurauth.jsf</form-error-page>
            </form-login-config>
        </login-config>
        
        <error-page>
            <error-code>403</error-code>
            <location>/accessdenied.jsf</location>
        </error-page>
    </web-app>

    Template.xhtml
    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html   xmlns="http://www.w3.org/1999/xhtml"
            xmlns:h="http://java.sun.com/jsf/html"  
            xmlns:f="http://java.sun.com/jsf/core" 
            xmlns:p="http://primefaces.org/ui"
            xmlns:ui="http://java.sun.com/jsf/facelets">
        <h:head>
            <title> <ui:insert name="title">Default title</ui:insert> </title>
            <style type="text/css" media="screen">@import "css/style.css";</style>
            <script type="text/javascript" src="js/jquery.js"></script>
        </h:head>
        <h:body>
            <div id="header">
                <div id="logo"><a href="" title="" target="_parent"></a></div>
                <div id="authForm">
                </div>
            </div>
            <!-- appel du menu principal-->
            <div id="navbar">	
                <ul id="menu" >
                    <li><a href="index.jsf" title="" target="_parent" class="m_accueil">Taleau de bord</a></li>
                    <li><a href="manageDomain.jsp" title="" target="_parent" class="m_hebergement">Gérer votre domaine</a></li>
                    <li><a href="statistical.jsp" title="" target="_parent" class="m_nomdedomaine">Statistiques</a></li>
                    <li><a href="assistance.jsp" title="" target="_parent" class="m_serveurdedie">Assistance</a></li>
                    <li><a href="help.jsp" title="" target="_parent" class="m_contact">Aide</a></li>
                </ul>     
            </div>
            <div id="corpshaut"></div>
            <div id="bloc">
                <div id="corps">	
                    <ui:insert name="content">Default content</ui:insert>
                    <div style="clear:both;"></div>
                    <img src="images/ban.png" alt="ban.png"/>
                </div>
            </div>
            <div id="footer">
                <p>2012 MSDS </p>
            </div>
        </h:body>
    </html>
    La page authentification.jsf fonctionne correctement si je pointe normalement dessus.

  2. #2
    Membre expérimenté Avatar de Njörd
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 190
    Par défaut
    Bien, ça avance un peu.

    Dans le web.xml il faut plutôt écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <web-resource-collection>
                <web-resource-name>MSDSHostingGlobal</web-resource-name>
                <url-pattern>*.jsf</url-pattern>
                <url-pattern>*.xhtml</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
    </web-resource-collection>
    A partir de là, le template s'affiche correctement. Glassfish utilise bien le moteur de jsf lorsqu'il redirige.

    J'ai désormais une autre erreur, la redirection à l'authentification entraine l'affichage du css, avec une url de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost:8080/MSDSHosting/javax.faces.resource/theme.css.jsf?ln=primefaces-aristo
    Je ne rencontre pas ce problème sur mes la page d'erreur d'authentification, ni celle d'interdiction d'accès qui sont elles aussi définie dans le web.xml.

    Si quelqu'un à une idée, merci d'avance

    Edit : si j'enlève l'appel au template via la composition, et que je fais un simple appel au css avec une balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <style type="text/css" media="screen">@import "css/style.css";</style>
    L'url devient une simple lecture du css
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost:8080/MSDSHosting/css/style.css

Discussions similaires

  1. Récupérer logs GlassFish pour affichage web
    Par gégé140488 dans le forum Glassfish et Payara
    Réponses: 0
    Dernier message: 11/10/2010, 12h01
  2. [Smarty] Problème d'affichage des templates avec Smarty
    Par sammaya dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 26/02/2009, 14h11
  3. Affichage champ template list
    Par sauceaupistou dans le forum SharePoint
    Réponses: 1
    Dernier message: 13/05/2008, 10h18
  4. erreur d'affichage dans template
    Par alexorcet dans le forum Langage
    Réponses: 13
    Dernier message: 04/12/2006, 22h27

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