JSF FrameWorks Page Login .....!!

abdego Messages postés 186 Date d'inscription vendredi 1 octobre 2010 Statut Membre Dernière intervention 3 février 2017 - 23 févr. 2012 à 21:07
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 24 févr. 2012 à 14:19
Salut Les amis ba voila je travail avec le Frameworks J2ee =>JSF<= et suis planté sur un petit problème que j'ai remarquer dans pas mal de Forum
> je cherche un exemple Concret d'utilisation d'une page login avec deux champs userName,Mdepasse...et un button ..je vx leur de l'athantification être rediriger vers une page X.jsp ==> voila tous ca je l'ai fait <== le problème c'est que quand je tape directement le nom de la page sur la bare d'adresse son mém passer par la page login la page s’affiche hhhh oui je parle tros mai sa fait pas mal de jour que je cherche une bon solution ...avec PHP s trés simple on creer une session et on vérifier s il existe ou nn mais avec jsf je suis planté merciiiiiiiiiii de m'aide :)

11 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
23 févr. 2012 à 21:26
Bonjour,

En jsf, c'est comme en php, il faut que tu passes l'utilisateur dans la session.

Si tu ne sais pas comment faire, tu peux regarder ca : http://www.javafr.com/codes/JSF-PASSER-PARAMETRES-DANS-SESSION_53291.aspx
0
abdego Messages postés 186 Date d'inscription vendredi 1 octobre 2010 Statut Membre Dernière intervention 3 février 2017
23 févr. 2012 à 22:14
Merci Julien :)
mai comment faire pour vérifier dans ( la page a qui en a Access après être identifier ) avant quel se charge qu'une session login'ok' existe ou nn pour éviter l’accès direct dans la bare d'adressage
0
abdego Messages postés 186 Date d'inscription vendredi 1 octobre 2010 Statut Membre Dernière intervention 3 février 2017
23 févr. 2012 à 23:22
j'atane ta repance avec compassion Julien Merci d'avance
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
24 févr. 2012 à 08:32
Il faut que tu gères ca dans le managedbean de ta page. Tu as plusieurs façons de le gérer, je t'en donne une, ce n'est pas la plus propre, mais ce que tu comptes utiliser (un booleen dans la session) n'est pas non plus idéal, mais cela répond peut être a tes bsoins :

Tu sais pour la navigation, tu utilises une méthode qui renvoi une chaine de caractères, et tu utilises cette chaine dans le facesconfig, tu peux jouer sur la valeur de cette chaine pour rediriger l'utilisateur vers un écran d'erreur s'il n'est pas connecté.

Par exemple, si dans le faces config, tu places ca :
<navigation-rule>
   <from-view-id>pageDepart.xhtml</from-view-id> 
   <navigation-case>
      <from-action>#{nomBean.methode}</from-action> 
      <from-outcome>loginok</from-outcome> 
      <to-view-id>/pageSuivanteLoginOk.xhtml</to-view-id> 
   </navigation-case>
   <navigation-case>
      <from-action>#{nomBean.methode}</from-action> 
      <from-outcome>nolog</from-outcome> 
      <to-view-id>/pageErreur.xhtml</to-view-id> 
   </navigation-case>
</navigation-rule>


dans la méthode nomBean.methode, tu récupères l'attribut connecté dans la session et selon sa valeur, tu fais un return nolog ou un return loginok et c'est réglé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
abdego Messages postés 186 Date d'inscription vendredi 1 octobre 2010 Statut Membre Dernière intervention 3 février 2017
24 févr. 2012 à 13:09
S fait mai sa règle pas toujours le problème que je t dit ==> tous marche quand je Click sur buttons connexion sa me redirect dans une page Aceuill.jsp
ou s'affiche un msg Bonjour Mr. XXX tous marche bien mai si j'ecrie directement le nom de la page Accueil.jsp dans la barre d'adresse j'accéd a la page son mem passer sur la page login son faire aucun test j esper que tu ma comprie ...
0
abdego Messages postés 186 Date d'inscription vendredi 1 octobre 2010 Statut Membre Dernière intervention 3 février 2017
24 févr. 2012 à 13:32
Voila Mon code pour la methode :
==============================
public String log() {
Criteria c = s.createCriteria(User.class);
c.add(Restrictions.eq("login", this.getLogin())).add(Restrictions.eq("mdp", this.getMdp()));
List rs = c.list();
p = rs.size();
if (p == 0) {
er= "Erreur Login or MDP !!";
return "login no";
} else {
er=this.getLogin();
return "login ok";
}
}
===============================
la page login le Formulaire :
<h:form>
<center>
<h:panelGrid columns="2" >
Entrer Login :<h:inputText value="#{bean1.login}" required="true" />
Entrer MDP :<h:inputSecret value="#{bean1.mdp}" required="true" id="mdp" >
<f:validateLength minimum="3" maximum="15" /></h:inputSecret>
<h:commandButton value="Conection" action="#{bean1.log()}" />
<h:outputText value="#{bean1.er}" style="color:red;" />
<h:messages />
</h:panelGrid>
</center>
</h:form>
==================================
page Aceuill.jsp :
==================================
<h:outputText value="Bonjour Mr. :#{bean1.er}"/>

==================================
faseConfig :
==================================
<navigation-rule>
<from-view-id>/login.jsp</from-view-id>
<navigation-case>
<from-action>#{bean1.log()}</from-action>
<from-outcome>Aceuill.jsp</from-outcome>
<to-view-id>/Aceuill.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/Aceuill.jsp</from-view-id>
<navigation-case>
<from-action>#{bean1.log()}</from-action>
<from-outcome>no</from-outcome>
<to-view-id>/login.jsp</to-view-id>
</navigation-case>
</navigation-rule>
==================================
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
24 févr. 2012 à 13:34
C'est qu'il faut lors de la création du Bean que tu testes si l'utilisateur dans la session a le droit de visuliser l'écran.

Il faut que tu fasses ca dans le constructeur de ton managed bean :

public ManagedBean(){
if(droitsInsuffisants){
rediriger();
}
}

public void rediriger(){
try {
FacesContext.getCurrentInstance().getExternalContext().redirect("http://localhost:8080/droitsInsuffisants.jsf");
} 
catch (IOException e) {
e.printStackTrace();
}
}
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
24 févr. 2012 à 13:36
Bien sur, ce n'est pas très propre comme code.

Pour celà, j'utilisais un controller (mais je ne pense pas que tu ais implémenté un MVC) qui était actionné dès la création d'un managedbean et qui faisait la redirection.

Je vais d'ailleurs essayer de retrouver mes classes de gestion des droits et je les posterai dans la partie sources. Mais d'ici là, tu auras réglé ton problème je pense.
0
abdego Messages postés 186 Date d'inscription vendredi 1 octobre 2010 Statut Membre Dernière intervention 3 février 2017
24 févr. 2012 à 13:53
droitsInsuffisants !!!! s koi
=> pas comprie quand même MErci Julien dsl pour mon derangement ... moi aussi j vai encore cherche des technique plus compréhensible pour sécuriser plus mes page réserver ou personne authentifier dans mon site Mercii bien :)
j'ésper trouver quelque chose
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
24 févr. 2012 à 14:18
droitsInsuffisants.xhtml c'est une page ou tu explique à ton utilisateur qu'il n'a pas les droits pour afficher la page

Le booleen droitsInsuffisants est un booleen qui est vrai si l'utilisateur n'a pas les droits d'afficher la page
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
24 févr. 2012 à 14:19
Dans le constructeur de ton bean, récupères l'attribut qui est dans la session et qui te permet de savoir si l'utilisateur peut voir la page ou non. S'il ne le peut pas fais un rediriger()
0
Rejoignez-nous