Développer avec RBS Change : Authentification d'utilisateurs sur plusieurs sites

  • 48978.1

    28/12/2011 11:31


    David Guillot
    Rang : Expert
    Bonjour,

    J'ai créé plusieurs sites dans mon projet Change, accessibles par des sous-domaines différents. Je souhaite que mes internautes qui s'authentifient sur un site, le soient sur les autres aussi. j'ai trouvé 2 méthodes :
    - Faire de mes internautes inscrits des users/websitefrontenduser pour le site principal, et lier mes autres sites à mon site principal avec la propriété linkedwebsites du websitefrontendgroup de mon site principal
    - Faire de mes internautes inscrits des users/frontenduser qui vont se loger tout droit dans le frontendgroup des utilisateurs enregistrés sur tous les sites

    Malheureusement aucune de ces 2 méthodes ne fonctionne : quand je m'authentifie sur un site, je ne le suis pas sur les autres. Il semble que le domaine d'application des cookies reste le site courant et non pas le domaine qui les contient tous. Est-il possible de configurer ça ?

    Merci d'avance
  • 48978.2 en réponse à 48978.1 écrit par David Guillot

    28/12/2011 17:37


    flyonne
    Rang : Adepte
    En ces périodes de trêve des confiseurs, il n'y pas grande monde sur la ligne.

    Plaisanterie à part, il me semble en effet qu'une couche sso soit à rajouter, demander le dév. d'un module dans ce sens serait intéressant.

    Désole ce n'est pas une réponse mais un simple point de vue

    développeur web Amateur et passioné, WebMestre du site http://www.opalys-fleurs.com/

  • 48978.3

    03/01/2012 10:38


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Bonjour,

    Nous n'avons rien prévu en ce sens pour une authentification simultanée sur un ensemble de sites.

    Dans le cas d'un ensemble de sites étant tous des sous-domaines d'un même domaine principal il y aurait théoriquement moyen de placer le cookie sur le domaine principal mais il me semble me souvenir qu'on n'a finalement rien fait en ce sens car cela ne fonctionnait pas avec tous les navigateurs.



    Dans tous les cas pour que les utilisateurs soient les mêmes d'un site à l'autre, il vous faudra effectivement configurer les choses pour que les différents sites utilisent le même groupe d'utilisateurs (votre première idée en utilisant la propriété linkedwebsites). Sans cela il faudra se ré-inscrire sur chaque site.
  • 48978.4 en réponse à 48978.3 écrit par Gaël Port

    03/01/2012 11:20


    David Guillot
    Rang : Expert
    D'où ma nouvelle question : est-il possible d'injecter la classe ChangeSessionStorage dans notre module spé pour changer la portée du cookie de session ?
  • 48978.5

    03/01/2012 11:58


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Dans l'absolu, oui je pense que vous pouvez remplacer la classe par AOP (j'avais déjà décrit la manière de faire quelque part dans un autre sujet, une petite recherche devrait le retrouver). [EDIT : Voir plus bas]

    Je ne suis par contre pas certain que vous arriverez à faire tout ce que vous voulez au niveau de cette classe... À tester.

    Édité par Gaël Port 13/01/2012 11:38

  • 48978.6 en réponse à 48978.5 écrit par Gaël Port

    13/01/2012 11:07


    fdurrieu
    Rang : Membre
    Bonjour,

    Nous avons essayé d'injecter la classe ChangeSessionStorage. Celle ci devient bien dans le fichier "to_include" ChangeSessionStorage_replaced0. Cependant dans notre fichier "to_include" de notre classe, l'extend de ChangeSessionStorage n'est pas modifié en ChangeSessionStorage_replaced0. Est-ce du au fait que ChangeSessionStorage soit dans le framework?
  • 48978.7

    13/01/2012 11:37


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Non ce n'est pas dû au fait qu'il est dans le framework, c'est plutôt dû au fait que la classe est utilisée très tôt dans la requête, sans passer par la mécanique d'autoload. Du coup effectivement ça ne marchera pas par AOP (contrairement à ce que je disais plus haut).

    Par contre il y a un moyen quand même. Certaines de ces classes disposent d'une variable de configuration pour les remplacer. On en trouve la liste dans le fichier framework/config/project.xml (qui contient des valeurs par défaut pour ce qui peut être configuré dans les fichiers project.xml et project.PROFILE.xml du projet. La section concernée est config/mvc/classes.
  • 48978.8 en réponse à 48978.7 écrit par Gaël Port

    13/01/2012 14:27


    fdurrieu
    Rang : Membre
    Bonjour,

    Après avoir injecté avec succès la classe ChangeSessionStorage la session ne se met pas en place. Est-il nécessaire de copier/coller le contenu de la fonction ChangeSessionStorage dans la classe qui l'injecte?
  • 48978.9 en réponse à 48978.8 écrit par fdurrieu

    16/01/2012 08:54


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Je ne suis pas certain de bien comprendre ce que vous dites (mélange entre classe et fonction) mais a priori il faut surtout remplacer ChangeSessionStorage par une classe qui l'étend...
  • 48978.10 en réponse à 48978.9 écrit par Gaël Port

    16/01/2012 10:31


    David Guillot
    Rang : Expert
    Oups désolé, je voulais parler de la méthode initialize() de la classe ChangeStorageSession... En fait on a finalement réussi, il se trouve qu'on avait plusieurs erreurs dans notre code spécifique, qu'on ne comprenait pas parce qu'on croyait que ce code n'était pas exécuté... Bref ça fonctionne bien, merci !
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1384 membres
Aucun membre connecté