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

Servlets/JSP Java Discussion :

problèmes avec j_security_check (le retour)


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut problèmes avec j_security_check (le retour)
    Hello les gens,
    J'ai suivi ce tuto et celui ci en vidéo pour implémenter j_security_check mais l'impression de ne pas très bien l'avoir configuré, je m'explique:
    1- Parfois en cliquant sur le submit du form le serveur à une fâcheuse tendance à vouloir ouvrir une url genre http://xxx.xxx.xxx.xxx:9080/ProjetWeb/jsp/j_security_check
    2- Les masques d'url marchent un peu n'importe comment (un utilisateur normal à le droit d'accéder à admin*.do alors que je spécifie une collection de ressources web avec pour unique rôle autorisé celui des admins) j'aurais vraiment besoin de quelqu'un qui ait déjà implémenté ce type d'authentification pour m'aider

    Merci pour toutes vos contributions.

    P.S:Note au modérateurs: ce mécanisme d'authentification n'est pas propre à WSAD ou RAD et peu très bien s'intégrer à tomcat ou autre.

  2. #2
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    J'ai réussi à lui trouver un autre comportement bizare à mon amie j_security_check, accrochez-vous c'est de la pure science fiction
    Alors en fait j'avais mits sur mes jsp un lien pour se déconnecter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="ibm_security_logout?logoutExitPage=jsp/login.jsp">
    Je me suis rendu comptre en fait que à chaque fois que je clique dessus: au lieu de me déconnecter et de me renvoyer vers la page demandée (login.jsp) ça rajoute un "/jsp" à l'url si bien que je me retrouve à rechercher une url du genre: http://xxx.xxx.xxx.xxx:9080/ProjetWeb/jsp/jsp/jsp/jsp/jsp/j_security_check ou encore http://xxx.xxx.xxx.xxx:9080/ProjetWeb/jsp/jsp/jsp/jsp/jsp/login.jsp
    En réduisant donc ce lien à <a href="ibm_security_logout> j'arrive à me débarasser du premier problème (sauf qu'en me deloguant j'arrive à afficher un très moche LOGOUT SUCCEFULL.
    Reste le problème 2 (et le nouveau appelons le joyeusement 3 )
    Au secouuurs!!!

  3. #3
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Pour que l'on puisse t'aider, il faudrait que tu postes le code du web.xml et plus particulièrement le contenu des balises <security-constraint>, <login-config> et <security-role>.

    Sinon, jette un oeil à ce tutoriel.
    Modératrice Java - Struts, Servlets/JSP, ...

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Points : 399
    Points
    399
    Par défaut
    Bonjour,

    1/ Peux-tu nous poster ton code de la page de login? ( devrait avoir cette forme, dans les grandes lignes )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form action="j_security_check">
    <input type="text" name="j_username"><br>
    <input type="password" name="j_password">
    </form>
    2/ Le mieux serait effectivement d'avoir ton web.xml sous les yeux.

    3/ Pourquoi ne pas rediriger simplement vers la racine de ton contexte ( http://mondomaine/monContexte ) au lieu de préciser cette page de login, que seul le conteneur doit utiliser directement ?

  5. #5
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    Ok je vous envoi ça tout de suite.
    Avez-vous une idée sur pourquoi quand je submit mon form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <FORM METHOD=POST ACTION="j_security_check"><font size="1"> <strong>
    Entrez votre ID utilisateur et votre mot de passe : </strong></font> <BR>
    <BR>
    <font size="1"><strong> User ID</strong> <input type="text" size="12"
    	name="j_username"></font> <font size="1"><strong> Password </strong> <input
    	type="password" size="12" name="j_password"></font> <BR>
    <font size="1"> <strong> Cliquez ensuite sur ce bouton pour vous
    connecter : </strong></font> <input type="submit" name="login"
    	value="Login"></form>
    Mon serveur essaies d'atteindre l'url en rajoutant à chaque fois un "/jsp" svp ?
    Concrètement par exemple, et très souvent 1 fois sur 2 presque (je ne sais pas pourquoi) en cliquant sur mon submit mon serveur essaies d'atteindre http://xxx.xxx.xxx.xxx:9080/ProjetWeb/jsp/j_security_check

  6. #6
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Sans le code du web.xml (demandé deux fois précédemment ), on ne va pas pouvoir t'aider.
    Modératrice Java - Struts, Servlets/JSP, ...

  7. #7
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    Désolé. Voila donc pour mon 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
    	<security-constraint>
    		<web-resource-collection>
    			<web-resource-name>adminResourcesCollection</web-resource-name>
    			<description></description>
    			<url-pattern>*.do</url-pattern>
    			<url-pattern>*.jsp</url-pattern>
    			<http-method>
    			GET</http-method>
    			<http-method>
    			POST</http-method>
    			<http-method>
    			PUT</http-method>
    			<http-method>
    			HEAD</http-method>
    			<http-method>
    			TRACE</http-method>
    			<http-method>
    			DELETE</http-method>
    			<http-method>
    			OPTIONS</http-method>
    		</web-resource-collection>
    		<auth-constraint>
    			<description></description>
    			<role-name>PenalitesAdminGroup</role-name>
    		</auth-constraint>
    		<user-data-constraint>
    			<transport-guarantee>INTEGRAL</transport-guarantee>
    		</user-data-constraint>
    	</security-constraint>
    	<security-constraint>
    		<web-resource-collection>
    			<web-resource-name>userResourcesCollection</web-resource-name>
    			<description></description>
    			<url-pattern>user*.do</url-pattern>
    			<url-pattern>user*.jsp</url-pattern>
    			<http-method>
    			GET</http-method>
    			<http-method>
    			POST</http-method>
    			<http-method>
    			PUT</http-method>
    			<http-method>
    			HEAD</http-method>
    			<http-method>
    			TRACE</http-method>
    			<http-method>
    			DELETE</http-method>
    			<http-method>
    			OPTIONS</http-method>
    		</web-resource-collection>
    		<auth-constraint>
    			<description></description>
    			<role-name>PenalitesAdminGroup</role-name>
    			<role-name>PenalitesUserGroup</role-name>
    		</auth-constraint>
    		<user-data-constraint>
    			<transport-guarantee>INTEGRAL</transport-guarantee>
    		</user-data-constraint>
    	</security-constraint>
    	<login-config>
    		<auth-method>FORM</auth-method>
    		<form-login-config>
    			<form-login-page>/jsp/login.jsp</form-login-page>
    			<form-error-page>/jsp/login.jsp</form-error-page>
    		</form-login-config>
    	</login-config>
    	<security-role>
    		<description></description>
    		<role-name>PenalitesAdminGroup</role-name>
    	</security-role>
    	<security-role>
    		<description></description>
    		<role-name>PenalitesUserGroup</role-name>
    	</security-role>
    En somme je défini 2 collections de ressources mappées respectivement sur:
    la 1ère sur *.do et *.jsp pour les admins.
    La 2ème sur user*.do et user*.jsp pour les users et les admins.

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Si tes jsp sont dans un répertoire jsp, tu devrais plutôt coder l'url-pattern suivante :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <url-pattern>/jsp/*</url-pattern>
    à la place de :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <url-pattern>*.jsp</url-pattern>
    Par contre, cela implique de sortir la jsp login.jsp du répertoire jsp.
    Et dans ce cas, tu ne devrais plus avoir le problème de répertoire jsp qui s'ajoute devant j_security_check.
    Modératrice Java - Struts, Servlets/JSP, ...

  9. #9
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    <url-pattern>/jsp/*</url-pattern>
    tu veux dire ]<url-pattern>/jsp/*.jsp</url-pattern> non ?
    Par contre, cela implique de sortir la jsp login.jsp du répertoire jsp.
    Quand je la sors du repertoire jsp et que je lance l'url http://xxx.xxx.xxx.xxx:9080/ProjetWeb le navigateur me repond par un 404 sur http://144.145.60.199:9080/PenalitesWeb/jsp/login.jsp
    On chauffe j'ai l'impression.

  10. #10
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par jadey Voir le message
    tu veux dire <url-pattern>/jsp/*.jsp</url-pattern> non ?
    Non, si tu n'as que des jsp dans le répertoire jsp, tu n'as pas besoin de préciser l'extension .jsp. Tu peux donc très bien mettre /jsp/*.
    Enfin, les deux solutions devraient fonctionner.

    Citation Envoyé par jadey Voir le message
    Quand je la sors du repertoire jsp et que je lance l'url http://xxx.xxx.xxx.xxx:9080/ProjetWeb le navigateur me repond par un 404 sur http://144.145.60.199:9080/PenalitesWeb/jsp/login.jsp
    On chauffe j'ai l'impression.
    Si login.jsp n'est plus dans le répertoire jsp, il faut penser à modifier le contenu des balises form-login-page et form-error-page en conséquence.
    Modératrice Java - Struts, Servlets/JSP, ...

  11. #11
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    Oups oui tu as raison.
    Mais les masques d'url font toujours un peu n'importe quoi.
    J'ai l'impression que ma "stratégie" de nommage des collections de ressources est toute fausse.

  12. #12
    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
    les masque d'url c'est soit

    *.xxxx -> ca correspond à tout ce qui fini par xxxx
    /xxx* -> ca correspond à tout ce qui commence par xxx

    des masques comme /xxx*.yyy ca n'existe pas et ca ne veux rien dire. D'ou le comportement "bizzare" de tes masques. (Voir SRV 11.1 "Mapping Requests to servlet" de la spécifications servlets)


    Ensuite on n'a qu'une partie du web.xml, donc on peux pas t'aider plus quand à tes préfixe /jsp, mais je présuppose que t'a mis ton login.jsp dans /jsp/login.jsp, ce qui explique pourquoi quand tu soumet le j_security_check, ca soumet sur /jsp/j_security_check, car l'action mentionné dans ton form est relatif et non absolu.

  13. #13
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    Ok voici le descripteur web dans son integralité:
    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app id="WebApp">
    	<icon>
    		<small-icon>/images/icon-small.png</small-icon>
    		<large-icon>/images/icon-large.png</large-icon>
    	</icon>
     
    	<display-name>PenalitesWeb</display-name>
     
    	<servlet>
    		<servlet-name>action</servlet-name>
    		<display-name>action</display-name>
    		<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    		<init-param>
    			<param-name>config</param-name>
    			<param-value>WEB-INF/config/struts-config.xml</param-value>
    		</init-param>
    		<init-param>
    			<param-name>debug</param-name>
    			<param-value>3</param-value>
    		</init-param>
    		<init-param>
    			<param-name>detail</param-name>
    			<param-value>3</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
     
    	<servlet-mapping>
    		<servlet-name>action</servlet-name>
    		<url-pattern>*.aspx</url-pattern>
    	</servlet-mapping>
     
    	<welcome-file-list>
    		<welcome-file>index.jsp</welcome-file>
    	</welcome-file-list>
    	<error-page>
    		<error-code>403</error-code>
    		<location>/jsp/403.jsp</location>
    	</error-page>
    	<error-page>
    		<error-code>404</error-code>
    		<location>/jsp/404.jsp</location>
    	</error-page>
    	<security-constraint>
    		<web-resource-collection>
    			<web-resource-name>adminResourcesCollection</web-resource-name>
    			<description></description>
    			<url-pattern>*.aspx</url-pattern>
    			<url-pattern>/jsp/*</url-pattern>
    			<http-method>
    			GET</http-method>
    			<http-method>
    			POST</http-method>
    			<http-method>
    			PUT</http-method>
    			<http-method>
    			HEAD</http-method>
    			<http-method>
    			TRACE</http-method>
    			<http-method>
    			DELETE</http-method>
    			<http-method>
    			OPTIONS</http-method>
    		</web-resource-collection>
    		<auth-constraint>
    			<description></description>
    			<role-name>PenalitesAdminGroup</role-name>
    		</auth-constraint>
    		<user-data-constraint>
    			<transport-guarantee>INTEGRAL</transport-guarantee>
    		</user-data-constraint>
    	</security-constraint>
    	<security-constraint>
    		<web-resource-collection>
    			<web-resource-name>userResourcesCollection</web-resource-name>
    			<description></description>
    			<url-pattern>/user*</url-pattern>
    			<url-pattern>/jsp/user*</url-pattern>
    			<http-method>
    			GET</http-method>
    			<http-method>
    			POST</http-method>
    			<http-method>
    			PUT</http-method>
    			<http-method>
    			HEAD</http-method>
    			<http-method>
    			TRACE</http-method>
    			<http-method>
    			DELETE</http-method>
    			<http-method>
    			OPTIONS</http-method>
    		</web-resource-collection>
    		<auth-constraint>
    			<description></description>
    			<role-name>PenalitesAdminGroup</role-name>
    			<role-name>PenalitesUserGroup</role-name>
    		</auth-constraint>
    		<user-data-constraint>
    			<transport-guarantee>INTEGRAL</transport-guarantee>
    		</user-data-constraint>
    	</security-constraint>
    	<login-config>
    		<auth-method>FORM</auth-method>
    		<form-login-config>
    			<form-login-page>/login.jsp</form-login-page>
    			<form-error-page>/login.jsp</form-error-page>
    		</form-login-config>
    	</login-config>
    	<security-role>
    		<description></description>
    		<role-name>PenalitesAdminGroup</role-name>
    	</security-role>
    	<security-role>
    		<description></description>
    		<role-name>PenalitesUserGroup</role-name>
    	</security-role>
    </web-app>
    Même en modifiant comme suggéré par tchize_ je n'obtiens toujours pas ce que je désire, à savoir une règle de nomage qui me permette de restreindre les resources constituées de jsp et des servlets les appelant pour certains groupes (ici les admins et les users mais il faudra que cette règle soit évolutive et permette d'ajouter de nouvelles collections de ressource disponibles uniquement pour d'eventuels nouveaux groupes)

  14. #14
    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
    Citation Envoyé par jadey Voir le message
    Même en modifiant comme suggéré par tchize_ je n'obtiens toujours pas ce que je désire, à savoir une règle de nomage qui me permette de restreindre les resources constituées de jsp et des servlets les appelant pour certains groupes (ici les admins et les users mais il faudra que cette règle soit évolutive et permette d'ajouter de nouvelles collections de ressource disponibles uniquement pour d'eventuels nouveaux groupes)
    Par rapport à ton web.xml là, donne nous une url complète qui pose problème, qui y a réellement accès et qui aurait normalement du y avoir accès?

  15. #15
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    Avec le paramétrage actuel l'url suivante "https://localhost:9443/PenalitesWeb/userSayHello.aspx" est accessible aux membres de PenalitesAdminGroup mais pas à ceux de PenalitesUserGroup.
    Je craint que tu ne te contente de m'expliquer ceux pourquoi ce cas de figure ne marche pas uniquement. J'aurais besoin comme je l'ai demandé d'une règle de nommage efficace.

  16. #16
    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
    avec cette url, tu matche 2 pattern: *.aspx (admin) et user* (users). Les deux match on la même longueur (4 caractères), il est donc impossible de lever l'ambiguité. Le conteneur prend donc la première entrée du web.xml, qui est le mapping admin et applique donc cette sécurité là.

    Le mieux est d'éviter l'ambiguité. D''habitude, on fait plutot ce genre de mapping.

    Administrateur: <url-pattern>/admin/*</url-pattern>
    Users authentifiés <url-pattern>/user/*</url-pattern>

    Etc.

    Note que un seul security-constraints est appliqué par URL, ce n'est pas combinatoire. Tu ne peux donc pas faire une url admin et user. La combinaison se gere au niveau des roles. Tu t'arrange pour que les utilisateurs admin fassent aussi partie du groupe users

  17. #17
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    Ok ça marche maintenant merci pour votre aide précieuse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problèmes avec j_security_check
    Par jadey dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 24/08/2009, 15h50
  2. Problème avec valeur de retour d'une fonction
    Par ouranos21 dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 20/01/2009, 08h52
  3. Problème avec j_security_check et les images
    Par Jack-Ob dans le forum Sécurité
    Réponses: 4
    Dernier message: 19/06/2008, 10h18
  4. problème avec j_security_check
    Par laurent.c123 dans le forum Websphere
    Réponses: 1
    Dernier message: 23/08/2007, 18h30
  5. Problème avec Mozilla, le retour
    Par zoidy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 31/05/2006, 12h30

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