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 :

Probleme d'accès direct aux page jsf


Sujet :

JSF Java

  1. #1
    Membre averti Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Points : 325
    Points
    325
    Par défaut Probleme d'accès direct aux page jsf
    Salut,

    Voila j'aimerais securiser l'access directement à mes pages jsf. j'ai créé un projet jsf sous netbeans/tomcat6 :

    ma page de login est comme ceci :
    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
      <h:form>
                            <table>
                                <tr>
                                    <td><h:outputText value="Enter
                                                  Login ID: " /></td>
                                    <td><h:inputText id="loginname"
                                                 value="#{SimpleLogin.loginname}" required="true"  >
                                            <f:validateLength maximum="5" minimum="4"/>
     
                                        </h:inputText>
                                            <font color="#FF0000">
                                        <h:message for="loginname"/></font></td>
                                </tr>
                                <tr>
                                    <td><h:outputText value="Enter Password:
                                                  " /></td>
                                    <td><h:inputSecret id="password" value="#{SimpleLogin.pass}" required="true" />
                                        <font color="#FF0000"><h:message for="password" /></font></td>
                                </tr>
                                <tr>
                                    <td>&nbsp;</td>
                                    <td><h:commandButton value="Login" action="#{SimpleLogin.CheckValidUser}" /></td>
                                </tr>
                            </table>
                        </h:form>
    sur le net je suis tombé sur http://benjaminprevot.fr/2010/07/14/...-pas-avec-jsf/

    proposant d'ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <security-constraint>
    	<web-resource-collection>
    		<web-resource-name>no-jsp-access</web-resource-name>
    		<url-pattern>*.jsp</url-pattern>
    	</web-resource-collection>
    	<auth-constraint>
    		<description>No direct access to JSP</description>
    	</auth-constraint>
    </security-constraint>
    dans mon web.xml mais aucun success

    voici mon faces config

    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
     
     <managed-bean>
            <managed-bean-name>SimpleLogin</managed-bean-name>
            <managed-bean-class>control.SimpleLogin</managed-bean-class>
            <managed-bean-scope>session</managed-bean-scope>
        </managed-bean>
        <navigation-rule>
            <from-view-id>/welcomeJSF.jsp</from-view-id>
            <navigation-case>
                <from-outcome>success</from-outcome>
                <to-view-id>/resultforsuccess.jsp</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>fail</from-outcome>
                <to-view-id>/resultforfail.jsp</to-view-id>
            </navigation-case>
        </navigation-rule>
    </faces-config>
    Merci
    ===================================
    ===Accroche ta charrue à l'Open source===
    ===================================

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pour utiliser l'authentification par formulaire gérée par le standard webapp (security constraints dans le web.xml donc), cette authentification doit se faire en respectant quelque règles comme ici

    http://beuss.developpez.com/tutoriel...on/formulaire/

    Et pas de JSF dans le formulaire d'authentification!

  3. #3
    Membre averti Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Points : 325
    Points
    325
    Par défaut
    Salut tchize,

    Merci pour ta reponse. Finalement aprés avoir suivit le lien que tu ma donné j'ai compris que c'etait un contrôle au niveau serveur.

    Ce que j'aimerais réaliser c'est un contrôle au niveau applicatif genre dans mon jsf bean je verifie les logins et mot de passe et le groupe utilisateur; je stocke dans une variable session que je revérifie à chaque debut des mes pages jsf . Et puis si l'authentification n'est pas correcte un forward ramène a la page login.

    Tu n'aurais pas des exemples par hasard ou le comment faire avec du jsf.

    Au plaisir de te relire
    ===================================
    ===Accroche ta charrue à l'Open source===
    ===================================

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    tu peux accéder au login de l'utilisateur avec a partir du userPrincipal, accessible via l'objet Request lui même diponible dans le FaceContext.

    Pour forcer manuellement une authentification, il existe le security filter, qui fonctionne comme l'authentification serveur, mais permet de déclencher des authentification en manuel

    Si tu ne veux pas utiliser du tout l'authentification prévue dans le serveur, il te reste des apis comme redback que tu peux ajouter à ton application http://redback.codehaus.org/

  5. #5
    Membre averti Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Points : 325
    Points
    325
    Par défaut
    Salut

    Pour le moment j'insere ce code dans toutes les pages jsf pour contrôler l'accés. Dis moi c'est quoi le risque ?

    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
     
    <%-- 
        Document   : secure
        Created on : 16 oct. 2010, 01:46:53
        Author     : jamal
    --%>
     
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
     
    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page import="javax.faces.context.FacesContext"%>
    <%@ page import="javax.faces.el.ValueBinding"%>
    <%
    FacesContext context = FacesContext.getCurrentInstance();
    ValueBinding properties = context.getApplication().createValueBinding("#{MyBean.properties}");
    String name = (String) properties.getValue(context);
    if(name.equals("true")){
        out.print("ok");
     }else{
           %>
      <jsp:forward page="error.jsp"/>
        <%}%>
    Au plaisir de te relire
    ===================================
    ===Accroche ta charrue à l'Open source===
    ===================================

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ben
    1) tu devra mettre du code dans chaque page
    2) JSF est déjà assez bancal avec du JSP, mais les scriptlet, les tags spécifiques JSP et la JSTL ca se mélange mal avec JSF.

    Il vau mieux plutot envisager un format du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:outputPanel rendered="#{myFunctionLib:userHasRole('admin')}">
    Menu admin
    </h:outputPanel> ;)

Discussions similaires

  1. Interdir l'accès direct aux pages JSF
    Par sky88 dans le forum JSF
    Réponses: 1
    Dernier message: 20/02/2012, 15h32
  2. Acces direct aux pages JSF
    Par bribe dans le forum JSF
    Réponses: 2
    Dernier message: 22/02/2011, 16h21
  3. Comment proteger contre l'acces direct aux pages?
    Par tetepro dans le forum Langage
    Réponses: 5
    Dernier message: 16/04/2008, 19h44
  4. [AJAX] Interdire accès direct aux pages PHP
    Par Nasky dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/07/2007, 17h28
  5. Enlever accès direct aux pages avec struts
    Par Verboz dans le forum Struts 1
    Réponses: 7
    Dernier message: 09/05/2007, 15h29

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