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 :

Realm connection url parameter (sous GlassFish)


Sujet :

JSF Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 117
    Points : 92
    Points
    92
    Par défaut Realm connection url parameter (sous GlassFish)
    Bonjour,

    J'apprends à utiliser le realm connection pour avoir une page sécurisée sur mon application web sous JAVA EE avec un serveur web Glassfish.

    Voici le code de la page sécuriséé:

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version='1.0' encoding='UTF-8' ?>
    <!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">
        <h:head>
            <title>Main page</title>
        </h:head>
        <h:body>
            <h1>Main page N° ${param.id_page}</h1>     
        </h:body>
    </html>

    Le code du fichier web.xml :

    Code XML : 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
     
    	<session-config>
          <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>secure/main_page.xhtml</welcome-file>
        </welcome-file-list>
         <security-constraint>
            <web-resource-collection>
                <web-resource-name>secure-pages</web-resource-name>
                <url-pattern>/secure/*</url-pattern>
            </web-resource-collection>
            <auth-constraint>
                <role-name>user_role</role-name>
            </auth-constraint>
        </security-constraint>
        <security-role>
            <role-name>user_role</role-name>
        </security-role>
        <login-config>
            <auth-method>FORM</auth-method>
            <realm-name>file</realm-name>
            <form-login-config>
                <form-login-page>/connection/login.xhtml</form-login-page>
                <form-error-page>/connection/error.xhtml</form-error-page>
            </form-login-config>
        </login-config>

    Lorsque je saisie le lien localhost:8080/ProjetTest/secure/main_page.xhtml?id_page=5

    Je suis dirigé vers la page login où je saisie mon user et mot de passe et j’arrive bien sur le contenu de la page main_page.xhtml.

    Cependant, j’ai juste un détail qui m’échappe c’est après ma connexion le paramètre id_page n’est pas affiché par contre si je clique sur actualiser alors je retrouve bien à la valeur saisi sur la barre d’adresse (dans mon 5).


    Résumé : la première tentative de connexion je suis bien dirigé vers login page et je me connecte. Sauf que le paramètre id_page n’est pas affiché sur la page. Par contre après avoir cliqué actualiser (ma connexion reste valide) id_page s’affiche bien sur la page.


    Quelqu’un aurait déjà rencontré ce problème ?

    Merci d'avance.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 124
    Points : 86
    Points
    86
    Par défaut
    Dans le code de ta page JSF, tu utilises des expressions EL avec la syntaxe JSP : Comme tu fais du JSF, tu devrais plutot employer cette syntaxe : Par contre il n'y a pas le code de ton backing bean (le code java).

    Il y a une manière de résoudre ton problème, il suffit de faire la lecture des paramètres dans ton backing bean avec une méthodes annotée avec @PostConstruct.

    Avec quelque chose qui ressemble à ça :
    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 class Bean implements Serializable {
    	String idPage;
     
    	@PostConstruct
    	public void init() {
    		FacesContext context = FacesContext.getCurrentInstance();
    		HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
     
    		if (request.getParameter("id_page") != null) {
    			// lecture de la valeur du paramètre
    			idPage = request.getParameter("id_page");
    		}
    	}
     
    	String getIdPage() {
    		return this.idPage;
    	}
     
    }
    ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class Bean implements Serializable {
    	String idPage;
     
    	@PostConstruct
    	public void init() {
    		FacesContext context = FacesContext.getCurrentInstance();
    		idPage =  context .getExternalContext().getRequestParameterMap().get( "id_page" );
    	}
     
    	String getIdPage() {
    		return this.idPage;
    	}
     
    }
    Le code de ta page JSF sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version='1.0' encoding='UTF-8' ?>
    <!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">
        <h:head>
            <title>Main page</title>
        </h:head>
        <h:body>
            <h1>Main page N° #{bean.idPage}</h1>     
        </h:body>
    </html>

Discussions similaires

  1. Realm personnalisé sous GlassFish V3
    Par Madfrix dans le forum Glassfish et Payara
    Réponses: 3
    Dernier message: 12/11/2012, 22h51
  2. Postgresql connection pool sous glassfish v3
    Par jbuillot dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 09/12/2009, 18h16
  3. [EasyPHP] URL Rewriting sous EasyPHP 1.8
    Par Saiyan dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 30/12/2006, 13h35
  4. [SQLSERVER] Connect by prior sous SQL Server
    Par marsup54 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/03/2006, 09h49
  5. Comment on connecte un modem sous C++ Builder?
    Par Snipeyes dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/01/2005, 20h21

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