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 :

Connexion via AD


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant technico-fonctionnel
    Inscrit en
    Juin 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant technico-fonctionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 55
    Par défaut Connexion via AD
    Bonjour, voici mon problème, je souhaite mettre en place de la sécurité sur mon site réaliser sous symfony2.1.6, via une connexion a l'active directory, mon problème est que je n'y arrive pas , j'essaye depuis maintenant un mois et ce sans succès. J'ai l'impression de tourner en rond....
    Si quelqu'un pouvait m'aider

    Merci d'avance

    choco7

  2. #2
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Billets dans le blog
    2
    Par défaut
    Salut,

    si tu pouvais nous faire un topo d'ou tu en es, des codes qui bloquent ou des processus que tu ne comprends pas...

  3. #3
    Membre averti
    Homme Profil pro
    Consultant technico-fonctionnel
    Inscrit en
    Juin 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant technico-fonctionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 55
    Par défaut
    Merci encore de ta réponse viduc, voici mon problème, lors de la création d'un fournisseur d'utilisateur sous symfony on on reçoit en paramètre uniquement le username ce qui ne convient pas dans le cas d'une connexion a l'AD étant donné qu'il nous faut pouvoir se connecter a l'ad pour pouvoir lire les groupes auquel appartient notre utilisateur, donc il nous faudrait le mot de passe de l'utilisateur... et la je bloque...

    J'ai créer un fournisseur d'utilisateurs (il fonctionne) mais je ne sais pas comment obtenir le mot de pass de celui ci dans le provider afin de me connecter a l'Active Directory et de lire les groupe auquel il appartient.
    merci d'avance pour votre aide,
    Choco7

  4. #4
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Billets dans le blog
    2
    Par défaut
    Alors voila en gros ce que j'ai fait pour réglé le problème (ça date donc je ne sais pas si je serais te donner les bonnes infos...)

    J'ai modifié ma class UserProvider en rajoutant une méthode setPassword (qui enregistre le password dans la class).

    Dans mon AuthProvider, avant l'appel du loadUserByUsername de l'userProvider, j'envoie le password récupérer via le token d'authentification.

    Après dans mon UserProvider je peux m'authentifié sur l'AD...

    voici ma class UserProvider:

    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
     
    <?php
    //========================================================//
    //== ADManager - Système de Gestion LDAP pour Symphony2 ==//
    //==            Viduc 2012 - viduc@sugarbox.fr          ==//
    //========================================================//
     
    namespace ADManager\SecurityBundle\Security\User;
    use Symfony\Component\Security\Core\User\UserProviderInterface;
    use Symfony\Component\Security\Core\User\UserInterface;
    use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
    use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
    use ADManager\SecurityBundle\Security\User\User;
    use ADManager\AdldapBundle\Services\AdLdap\adLDAP;
    use ADManager\AdldapBundle\Services\AdLdap\classes\adLDAPUsers;
     
    class UserProvider implements UserProviderInterface
        {
        private $password;
        private $adldap;
        private $Roles = array();
        private $RealRoles = array();
        private $userLDAP;
     
        public function __construct(adLDAP $adldap, $Roles)
            {
            //récupération du service adldap
            $this->adldap = $adldap;
            $this->Roles = $Roles;
            }
     
        public function loadUserByUsername($username)
            {
            if($this->adldap->authenticate($username,$this->password))
                {
                //instanciation de la class user depuis adLDAP
                $this->userLDAP = $this->adldap->user($this->adldap);
                //vérification pour chaque role existant si l'utilisateur fait partit du groupe AD équivalent
                foreach($this->Roles as $role => $grp)
                    {if($this->userLDAP->inGroup($username, $grp)){$this->RealRoles[] = $role;}}
                $user = new User();
                $user->setUsername($username);
                $user->setPassword($this->password);            
                $user->setRoles($this->RealRoles);
                return $user;
                }
            }
     
        public function refreshUser(UserInterface $user)
            {
            if (!$user instanceof User) 
                {throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_class($user)));}
     
            return $this->loadUserByUsername($user->getUsername());
            }
     
        public function supportsClass($class)
            {return $class === 'ADManager\SecurityBundle\Security\User';}
     
        //fonction pour récupérer ou enregistrer le mot de passe de l'utilisateur
        public function setPassword($password)
            {$this->password = $password;}
        public function getPassword()
            {return $this->password;}
        }
    les deux dernières méthodes ont étét rajoutées

    ma class AuthProvider:

    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
     
    <?php
    //========================================================//
    //== ADManager - Système de Gestion LDAP pour Symphony2 ==//
    //==            Viduc 2012 - viduc@sugarbox.fr          ==//
    //========================================================//
     
    namespace ADManager\SecurityBundle\Security\Authentication\Provider;
    use Symfony\Component\Security\Core\Authentication\Provider\AuthenticationProviderInterface;
    use Symfony\Component\Security\Core\User\UserProviderInterface;
    use Symfony\Component\Security\Core\Exception\AuthenticationException;
    use Symfony\Component\Security\Core\Exception\NonceExpiredException;
    use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
    use Symfony\Component\Security\Core\Exception\BadCredentialsException;
    use ADManager\SecurityBundle\Security\Authentication\Token\UserToken;
     
    class AuthProvider implements AuthenticationProviderInterface
        {
        private $userProvider;
        private $cacheDir;
        private $session;
     
        public function __construct(UserProviderInterface $userProvider, $cacheDir)
            {
            $this->userProvider = $userProvider;
            $this->cacheDir     = $cacheDir;
            }
     
        public function authenticate(TokenInterface $token)
            {
            $this->userProvider->setPassword($token->getCredentials());
            $user = $this->userProvider->loadUserByUsername($token->getUsername());
            if($user)
                {
                $authenticatedToken = new UserToken($user->getUsername(), $user->getPassword(), "user", $user->getRoles());
                return $authenticatedToken;
                }
            throw new AuthenticationException("L'authentification a échouée");
            }
     
        public function supports(TokenInterface $token)
            {return $token instanceof UserToken;}
     
        public function validate()
            {return true;}
    }

  5. #5
    Membre averti
    Homme Profil pro
    Consultant technico-fonctionnel
    Inscrit en
    Juin 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant technico-fonctionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 55
    Par défaut
    bonjour, merci de ta réponse grâce a toi j'avance mais je comprend pas le adLDAP
    Je comprend pas d’où il sort ^^
    De plus si je comprend bien je dois faire un fournisseur d'authentification personnalisé?
    puis je voir ta classe user? affin de voir si la mienne est bonne
    Par contre j'ai un souci, je me base sur la documentation de symfony, mais dans celle ci pour le fournisseur d'authentification il utilise WSSE et du coup je ne sais pas comment me servir du listener, token, factory, etc... dans le cas d'une authentification AD
    la j'essaie de creer un fournisseur d'authentification mais je n'y arrive pas :/
    merci de ton aide,

    CHoco7

  6. #6
    Membre averti
    Homme Profil pro
    Consultant technico-fonctionnel
    Inscrit en
    Juin 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant technico-fonctionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 55
    Par défaut
    alors, voici mon code du fournisseur d'authentification:


    le userToken:

    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
    <?php
    // Developpement/CartopiBundle/Security/Authenticaion/Token/UserToken.php
     
    namespace Developpement\CartopliBundle\Security\Authentication\Token;
     
    use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
     use Symfony\Component\Security\Core\Authentication\Token\AbstractToken;
     
    class UserToken extends AbstractToken
    {
        private $credentials;
        private $providerKey;
     
        /**
         * Constructor.
         *
         * @param string $user        The username (like a nickname, email address, etc.)
         * @param string $credentials This usually is the password of the user
         * @param string $providerKey The provider key
         * @param array  $roles       An array of roles
         *
         * @throws \InvalidArgumentException
         */
        public function __construct($user, $credentials, $providerKey, array $roles = array())
        {
            parent::__construct($roles);
     
            if (empty($providerKey)) {
                throw new \InvalidArgumentException('$providerKey must not be empty.');
            }
     
            $this->setUser($user);
            $this->credentials = $credentials;
            $this->providerKey = $providerKey;
     
            parent::setAuthenticated(count($roles) > 0);
        }
     
        /**
         * {@inheritdoc}
         */
        public function setAuthenticated($isAuthenticated)
        {
            if ($isAuthenticated) {
                throw new \LogicException('Cannot set this token to trusted after instantiation.');
            }
     
            parent::setAuthenticated(false);
        }
     
        public function getCredentials()
        {
            return $this->credentials;
        }
     
        public function getProviderKey()
        {
            return $this->providerKey;
        }
     
        /**
         * {@inheritdoc}
         */
        public function eraseCredentials()
        {
            parent::eraseCredentials();
     
            $this->credentials = null;
        }
     
        public function serialize()
        {
            return serialize(array($this->credentials, $this->providerKey, parent::serialize()));
        }
     
        public function unserialize($str)
        {
            list($this->credentials, $this->providerKey, $parentStr) = unserialize($str);
            parent::unserialize($parentStr);
        }
    }
    ?>
    mon AuthListener:

    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
    <?php
    namespace Developpement\CartopliBundle\Security\Firewall;
     
     
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\HttpKernel\Event\GetResponseEvent;
    use Symfony\Component\Security\Http\Firewall\ListenerInterface;
    use Symfony\Component\Security\Core\Exception\AuthenticationException;
    use Symfony\Component\Security\Core\SecurityContextInterface;
    use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
    use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
    use Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface;
    use Symfony\Component\Security\Http\HttpUtils;
     
     
    use Developpement\CartopliBundle\Security\Authentication\Token\UserToken;
     
    // Lorsque l'on veut un formulaire de login, il faut hériter de AbstractAuthenticationListener
    // L'implémentation de ListenerInterface ne convient pas dans ce cas.
    class AuthListener extends AbstractAuthenticationListener
    {
        protected $securityContext;
        protected $authenticationManager;
        protected $httpUtils;
     
        public function __construct(SecurityContextInterface $securityContext, AuthenticationManagerInterface $authenticationManager,
                                    SessionAuthenticationStrategyInterface $sessionStrategy, HttpUtils $httpUtils, $options = array())
        {
            parent::__construct($securityContext, $authenticationManager, $sessionStrategy, $httpUtils, "user", array_merge(array(
                'username_parameter' => '_username',
                'password_parameter' => '_password',
                'intention' => 'authenticate',
                'post_only' => true,
            ), $options));
        }
     
        /**
         * Performs authentication.
         *
         * @param  Request $request A Request instance
         *
         * @return TokenInterface The authenticated token, or null if full authentication is not possible
         *
         * @throws AuthenticationException if the authentication fails
         */
        protected function attemptAuthentication(Request $request)
        {
     
            $username = trim($request->get($this->options['username_parameter'], null, true));
            $password = $request->get($this->options['password_parameter'], null, true);
     
            //$request->getSession()->set(SecurityContextInterface::LAST_USERNAME, $username);
     
            return $this->authenticationManager->authenticate(new UserToken($username, $password, $this->providerKey));
     
        }
     
        public function getHttpUtils()
        {
            return $this->httpUtils;
        }
     
        public function setHttpUtils($httpUtils)
        {
            $this->httpUtils = $httpUtils;
        }
    }
    ?>

    mon AuthProvider:

    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
    <?php
    namespace Developpement\CartopliBundle\Security\Authentication\Provider;
    use Symfony\Component\Security\Core\Authentication\Provider\AuthenticationProviderInterface;
    use Symfony\Component\Security\Core\User\UserProviderInterface;
    use Symfony\Component\Security\Core\Exception\AuthenticationException;
    use Symfony\Component\Security\Core\Exception\NonceExpiredException;
    use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
    use Symfony\Component\Security\Core\Exception\BadCredentialsException;
    use Developpement\CartopliBundle\Security\Authentication\Token\UserToken;
     
    class AuthProvider implements AuthenticationProviderInterface
    {
        private $userProvider;
        private $cacheDir;
     
        public function __construct(UserProviderInterface $userProvider, $cacheDir)
        {
            $this->userProvider = $userProvider;
            $this->cacheDir     = $cacheDir;
        }
     
        public function authenticate(TokenInterface $token)
        {
            $user = $this->userProvider->loadUserByUsername($token->getUsername());
            // $userToken = new UserToken();
            // $userToken->setUser($user);
            // echo "it worked"; exit;
            $newToken = new UserToken($token->getUser(), $token->getCredentials(), "user", array("ROLE_ADMIN"));
            $username = $newToken->getUser();
            if (empty($username)) {
                throw new BadCredentialsException('Bad credentials :)');
            }
            //return $newToken;
     
            if ($user && $this->validate()) {
                $authenticatedToken = new UserToken($token->getUser(), $token->getCredentials(), "user", $user->getRoles());
                $authenticatedToken->setUser($user);
     
                return $authenticatedToken;
            }
        }
     
        public function supports(TokenInterface $token)
        {
            return $token instanceof UserToken;
        }
     
        public function validate()
        {
            return true;
        }
     
    }
    ?>
    mon authFactory:


    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
    <?php
    // src/Developpement/CartopliBundle/DependencyInjection/Security/Factory/UserFactory.php
     
    namespace Developpement\CartopliBundle\DependencyInjection\Security\Factory;
     
    use Symfony\Component\DependencyInjection\ContainerBuilder;
    use Symfony\Component\DependencyInjection\Reference;
    use Symfony\Component\DependencyInjection\DefinitionDecorator;
    use Symfony\Component\Config\Definition\Builder\NodeDefinition;
    use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\SecurityFactoryInterface;
     
    class AuthFactory implements SecurityFactoryInterface
    {
        public function create(ContainerBuilder $container, $id, $config, $userProvider, $defaultEntryPoint)
        {
            $providerId = 'security.authentication.provider.user.'.$id;
            $container
                ->setDefinition($providerId, new DefinitionDecorator('user.security.authentication.provider'))
                ->replaceArgument(0, new Reference($userProvider))
            ;
            $listenerId = 'security.authentication.listener.user.'.$id;
            $listener = $container->setDefinition($listenerId, new DefinitionDecorator('user.security.authentication.listener'));
     
            return array($providerId, $listenerId, $defaultEntryPoint);
        }
     
        public function getPosition()
        {
            return 'pre_auth';
        }
     
        public function getKey()
        {
            return 'my_user_factory';  // Utilisée dans app/config/security.yml
        }
     
        public function addConfiguration(NodeDefinition $node)
        {}
    }
    ?>
    mon service.yml:


    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
    parameters:
    #    developpement_cartopli.example.class: Developpement\CartopliBundle\Example
      developpement_cartopli.listener.class:  Developpement\CartopliBundle\Security\Firewall\AuthListener
    services:
    #    developpement_cartopli.example:
    #        class: %developpement_cartopli.example.class%
    #        arguments: [@service_id, "plain_value", %parameter%]
      ldap_user_provider:
              class: Developpement\CartopliBundle\Security\User\LdapUserProvider     
      user.security.authentication.provider:
            class:  Developpement\CartopliBundle\Security\Authentication\Provider\AuthProvider
            arguments: ["", %kernel.cache_dir%/security/nonces]
      user.security.authentication.listener:
            class:  Developpement\CartopliBundle\Security\Firewall\AuthListener
            arguments: [@security.context, @security.authentication.manager]
    mon fichier DeveloppementCartopliBundle.php:

    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
    <?php
    namespace Developpement\CartopliBundle;
    use Developpement\CartopliBundle\DependencyInjection\Security\Factory\AuthFactory;
    use Symfony\Component\HttpKernel\Bundle\Bundle;
    use Symfony\Component\DependencyInjection\ContainerBuilder;
     
    class DeveloppementCartopliBundle extends Bundle
    {
     
        public function build(ContainerBuilder $container)
        {
            parent::build($container);
     
            $extension = $container->getExtension('security');
            $extension->addSecurityListenerFactory(new AuthFactory());
        }
    }
    le security.yml:

    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
    jms_security_extra:
        secure_all_services: false
        expressions: true
     
    security:
        encoders:
           # Symfony\Component\Security\Core\User\User: plaintext
            Symfony\Component\Security\Core\User\User: 
                algorithm: sha1
                iterations: 1
                encode_as_base64: false
            Developpement\CartopliBundle\Security\User\LdapUser: plaintext 
        role_hierarchy:
            ROLE_ADMIN:       ROLE_USER
            ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
            ROLE_USER1:       ROLE_USER 
            ROLE_USER2:       ROLE_USER
     
        providers:
     
            #in_memory:
               # memory:
     
                    #users:
                        #user1:  { password: fc59c73b6afd493bfdddc89a90c5ac2f92bb1093, roles: [ 'ROLE_USER1' ] }
                        #user2:  { password: 76a3bdec0c31a02eea796e145d824e3b4ec93d4a, roles: [ 'ROLE_USER2' ] }
                        #admin: { password: 74913f5cd5f61ec0bcfdb775414c2fb3d161b620 , roles: [ 'ROLE_ADMIN' ] }
            ldap:
                id: ldap_user_provider
        firewalls:
            #user_secured:
                #pattern:    ^/
                #user:      true
            dev:
                pattern:  ^/(_(profiler|wdt)|css|images|js)/
                security: false
     
            #login:
                #pattern:  ^/demo/secured/login$
                #security: false
     
            secured_area:
                pattern:    ^/
     
                anonymous: true
                #form_login:
                    #check_path: /login_check
                    #login_path: /login
                #form_login:
                    #check_path: /demo/secured/login_check
                    #login_path: /demo/secured/login
                logout:
                    path:  /logout
                    target: /login
                security: true 
                access_denied_url: /login 
                user: 
                  login_path: /login
                  check_path: /login_check
                #anonymous: ~
                #http_basic: true
                #    realm: "Secured Demo Area"
     
        access_control:
            - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/Developpement, roles: [ROLE_USER,IS_AUTHENTICATED_ANONYMOUSLY] }
            #- { path: ^/LeBtsSio/cour1, roles: ROLE_USER1}
            #- { path: ^/LeBtsSio/cour2, roles: ROLE_USER2}
            #- { path: ^/LeBtsSio, roles:[ROLE_USER2,ROLE_USER1, IS_AUTHENTICATED_ANONYMOUSLY]}
            #- { path: ^/LeBtsSio/recrutement, roles:[ROLE_USER2,ROLE_USER1]}
     
            #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
            #- { path: ^/_internal, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }

    et voici l'erreur qui apparait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Catchable Fatal Error: Argument 6 passed to Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener::__construct() must be an instance of Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface, array given, called in C:\wamp\www\Symfony\src\Developpement\CartopliBundle\Security\Firewall\AuthListener.php on line 34 and defined in C:\wamp\www\Symfony\vendor\symfony\symfony\src\Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener.php line 79

    merci de votre aide


    Edit du jeudi 31/01/2013: mise a jour du code posté

Discussions similaires

  1. connexion via asp ou php ?
    Par cege dans le forum 4D
    Réponses: 5
    Dernier message: 25/01/2006, 08h43
  2. probleme de connexion via un poste distant
    Par leghola dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/09/2005, 11h51
  3. [interbase5] problem au connexion via le serveur
    Par inconu dans le forum InterBase
    Réponses: 1
    Dernier message: 31/07/2005, 00h24
  4. pb de connexion via Kylix2
    Par nadine.mauch dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 22/09/2003, 09h29
  5. [CR 9] [ASPX][C#]connexion via code
    Par nannous dans le forum Connectivité
    Réponses: 3
    Dernier message: 20/08/2003, 15h12

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