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 :

Protéger page JSF contre accès direct


Sujet :

JSF Java

  1. #1
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut Protéger page JSF contre accès direct
    si un usr tente d'acceder directement à une page donner, on doit faire la redirection vers la page de loggin,

    si vous avez une solution claire sous jsf et ejb3 sans spring,

    merci d'avance pour vos réponses

  2. #2
    Membre confirmé Avatar de heid
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2002
    Messages : 388
    Points : 597
    Points
    597
    Par défaut
    Dans le web.xml tu peux ajouter des options de filtrage, en spécifiant que tel ou tel groupe à accès à tel ou tel répertoire. Tu peux aussi spécifier le mode d'autentification. Si c'est FORM, tu spécifies quelle page fait office de formulaire de connection. Voici un exemple :

    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
     
    	<welcome-file-list>
     
    		<welcome-file>pages/restricted/accueil.jsf</welcome-file>
    	</welcome-file-list>
     
     
    	<!-- sec admin -->
     
    	<security-constraint>
    		<web-resource-collection>
    			<web-resource-name>AdminPages</web-resource-name>
    			<description>
    				These pages are only accessible by authorized
    				administrators.
    			</description>
    			<url-pattern>/pages/secured/*</url-pattern>
    			<http-method>GET</http-method>
     
     
    		</web-resource-collection>
     
    		<auth-constraint>
    			<role-name>GeoReparition_Admins</role-name>
    		</auth-constraint>
    		<user-data-constraint>
    			<transport-guarantee>NONE</transport-guarantee>
    		</user-data-constraint>
    	</security-constraint>
     
     
    	<!-- sec user -->
    	<security-constraint>
    		<web-resource-collection>
    			<web-resource-name>UserPages</web-resource-name>
    			<description>
    				These pages are only accessible by authorized user.
    			</description>
    			<url-pattern>/pages/restricted/*</url-pattern>
    			<http-method>GET</http-method>
     
     
    		</web-resource-collection>
     
    		<auth-constraint>
    			<role-name>GeoReparition_Admins</role-name>
    			<role-name>GeoReparition_Users</role-name>
    		</auth-constraint>
    		<user-data-constraint>
    			<transport-guarantee>NONE</transport-guarantee>
    		</user-data-constraint>
    	</security-constraint>
     
     
     
     
    	<login-config>
    		<auth-method>FORM</auth-method>
    		<form-login-config>
    			<form-login-page>/pages/login.jsf</form-login-page>
    			<form-error-page>/pages/loginProbleme.jsf</form-error-page>
    		</form-login-config>
    	</login-config>
     
    	<security-role>
    		<description>An administrator</description>
    		<role-name>GeoReparition_Admins</role-name>
    	</security-role>
    	<security-role>
    		<description>Un utilisateur</description>
    		<role-name>GeoReparition_Users</role-name>
     
    	</security-role>
    Ensuite, pour effectuer la connection en elle même, il faut que tu appelles une servlet spéciale de ton serveur d'application. Dans mon cas c'est weblogic :
    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
    <form method="POST" action="j_security_check" >
    	<div class="titreLogin1">
    	Géo répartition agences
    	</div>
    	<table align="center"    class="dataTextBold"   >
    		<tr>
    			<td>
    		<h:outputText  />
    				<h:outputText value="#{apps['login.login']}"/>
    			 </td>
    			<td><input type="text"  id="j_username" name="j_username"></td>
    		</tr>
    		<tr>
    			<td>
    				<h:outputText value="#{apps['login.password']}"/>
    			 </td>
    			<td><input type="password" id="j_password" name="j_password"></td>
    		</tr>
    		<tr>
    			<td  colspan=2 align=right>   <input type=submit value="Connexion"></td>
    		</tr>
    	</table>
     
     
     
    	</form>
    Le plus important c'est l'action et le nom des champs , tu remarquera l'action : j_security_check

    La gestion des utilisateurs, des groupes et des rôles est liée à ton serveur d'application. Je suis sous weblogic, je pense que ce n'est pas ton cas, aussi, mon aide s'arrêtera là !

Discussions similaires

  1. Empêcher l'accès direct à une page JSF
    Par TheJoe dans le forum JSF
    Réponses: 7
    Dernier message: 03/08/2012, 13h22
  2. Réponses: 2
    Dernier message: 09/04/2009, 11h22
  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. Réponses: 7
    Dernier message: 03/07/2006, 17h10

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