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

Symfony PHP Discussion :

Application Symfony utilisant phpCAS


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 62
    Par défaut Application Symfony utilisant phpCAS
    Bonjour à tous !
    Je suis sur une application sur symfony, pour l'authentification je voudrai utilisé le système d'authentification CAS, pour cela j'utilise la bibliothèque phpCAS et la classe que j'ai trouvé sur le net:
    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
     
    <?php
    class sfCASRequiredFilter extends sfBasicSecurityFilter
    {
      public function execute ($filterChain)
      {
        if ($this->isFirstCall() ){
            //require_once('phpCAS/CAS.php');
     
            phpCAS::setDebug();
     
            phpCAS::client(CAS_VERSION_2_0,$this->getParameter('server_domain'), $this->getParameter('server_port'), $this->getParameter('server_path'));
            // no SSL validation for the CAS server
            phpCAS::setNoCasServerValidation();
     
            $this->getContext()->getLogger()->debug('{sfCASRequiredFilter} about to force auth');
            phpCAS::forceAuthentication();
            $this->getContext()->getLogger()->debug('{sfCASRequiredFilter} auth is good');
     
            $this->getContext()->getUser()->setAuthenticated(true);
            $this->getContext()->getUser()->setAttribute('username', phpCAS::getUser(), 'cas');
            $this->getContext()->getUser()->addCredential('username_'.phpCAS::getUser());
            }
     
        # if not initially authorized, sfBasicSecurityFilter sets $controller->forward(sfConfig::get('sf_login_module'), sfConfig::get('sf_login_action'));
        # so we re-dispatch since we are already authorized
        # copied from sfFrontWebController's dispatch()
        $this->getContext()->getLogger()->debug('{sfCASRequiredFilter} configs are ' . sfConfig::get('sf_login_module') . '/' . sfConfig::get('sf_login_action'));
        if ($this->getContext()->getModuleName() == sfConfig::get('sf_login_module')
                && $this->getContext()->getActionName() == sfConfig::get('sf_login_action')) {
            $request    = $this->getContext()->getRequest();
            $moduleName = $request->getParameter('module');
            $actionName = $request->getParameter('action');
            $this->getContext()->getLogger()->debug('{sfCASRequiredFilter} forwarding to ' . $moduleName . '/' . $actionName);
            $this->getContext()->getController()->forward($moduleName, $actionName);
        }
        // Execute next filter in the chain
        $filterChain->execute();
      }
     
    }
    ?>
    Cette classe me permet d’accéder au serveur CAS pour l'authentification et me redirige vers mon application.
    Seulement je retrouve des difficultés au niveau de la gestion des droits des utilisateurs, des sessions et la déconnexion, j'ai jamais utilisé une classe sf...Filter sur symfony donc je sais pas trop ce que c'est !
    J'essaye de gérer un user dans la classe myUser.class.php mais il reconnait pas la variable $user
    aussi je me demande si le fait de m'authentifier avec CAS m'empêcherai d'utiliser le plugin sfDoctrineGuardPlufin pour la gestion des droits !
    Dois-je mettre mes fonctions de déconnexion et le reste dans cette classe sfCASRequiredFilter ???
    Si vous avez des réponses n'hésitez pas !! Je bloque

  2. #2
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Voici un lien expliquant le processus d'exécution les filtres :
    http://www.symfony-project.org/book/...ntroller-Layer

    Descend jusqu'au titre "Filters".

    Et j'ai trouvé ça http://www.symfony-project.org/plugins/sfCasPlugin.

    Perso sfGuardUser c'est une usine a gaz pas très souple au final.
    Il faut que tu regarde si il le permet. Si c'est pas le cas, tu risque de galérer...

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 62
    Par défaut
    Citation Envoyé par kenny.kev Voir le message
    Voici un lien expliquant le processus d'exécution les filtres :
    http://www.symfony-project.org/book/...ntroller-Layer

    Descend jusqu'au titre "Filters".

    Et j'ai trouvé ça http://www.symfony-project.org/plugins/sfCasPlugin.

    Perso sfGuardUser c'est une usine a gaz pas très souple au final.
    Il faut que tu regarde si il le permet. Si c'est pas le cas, tu risque de galérer...
    D'abord je te remercie pour ta réponse
    je vais commencer par regarder le lien sur les filtres, pour le plugin sfCasPlugin j'ai vue, il permet de sécuriser quelque partie de l'application or moi je veux que l'application soit sécurisée en entier d'ou l'utilisation de la bibliothèque phpCas au lieu du Plugin, j'ai trouvé ça sur ce lien:
    https://wiki.jasig.org/display/CASC/Symfony+CAS+Client

  4. #4
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Tout dépends tes besoins mais avec le plugin tu gagnes souplesse, il permet de surcharger l'authentification actuel de symfony.

    Pour le filtre c'est cette ligne qui te permet de charger les droits de l'utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->getContext()->getUser()->addCredential('username_'.phpCAS::getUser());

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/03/2007, 11h38
  2. lancer 2 application qui utilisent une table firebird
    Par adgabd dans le forum Firebird
    Réponses: 4
    Dernier message: 21/02/2007, 12h47
  3. Schématisation normalisée d'applications web utilisant un template MVC
    Par gonnarule.com dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 31/01/2007, 13h24
  4. Rendre application standalone utilisable sur le Web ?
    Par Amnesiak dans le forum Général Java
    Réponses: 27
    Dernier message: 14/09/2006, 15h09
  5. Pause dans une application sans utiliser Sleep()
    Par CriPpLe dans le forum MFC
    Réponses: 9
    Dernier message: 25/03/2006, 11h00

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