2013-08-06 3 views
1

Я пытаюсь настроить ZfcUser для аутентификации с откатом LDAP. Мой zfcuser.global.php содержит:Как настроить несколько адаптеров аутентификации с резервным

'auth_adapters' => array( 
    100 => 'ZfcUser\Authentication\Adapter\Db', 
    99 => 'ZfcUser\Authentication\Adapter\Ldap', 
), 

Я создал Ldap.php как AbstractAdapter со следующей установкой. Я устранил код функции для краткости:

namespace ZfcUser\Authentication\Adapter; 

use DateTime; 
use Zend\Authentication\Result as AuthenticationResult; 
use Zend\ServiceManager\ServiceManagerAwareInterface; 
use Zend\ServiceManager\ServiceManager; 
use Zend\Session\Container as SessionContainer; 
use ZfcUser\Authentication\Adapter\AdapterChainEvent as AuthEvent; 
use ZfcUser\Mapper\User as UserMapperInterface; 
use ZfcUser\Options\AuthenticationOptionsInterface; 


class Ldap extends AbstractAdapter implements ServiceManagerAwareInterface 
{ 
    protected $mapper; 
    protected $serviceManager; 
    protected $options; 

    public function authenticate(AuthEvent $e) 
    { 
     ... 
    } 

    public function getMapper() 
    { 
     ... 
    } 

    public function setMapper(UserMapperInterface $mapper) 
    { 
     ... 
    } 

    public function getServiceManager() 
    { 
     return $this->serviceManager; 
    } 

    public function setServiceManager(ServiceManager $serviceManager) 
    { 
     $this->serviceManager = $serviceManager; 
    } 

    public function setOptions(AuthenticationOptionsInterface $options) 
    { 
     $this->options = $options; 
    } 

    public function getOptions() 
    { 
     ... 
    } 

} 

Я также включил его как invokable в файле module.php:.

public function getServiceConfig() 
{ 
    return array(
     'invokables' => array(
      'ZfcUser\Authentication\Adapter\Db' => 'ZfcUser\Authentication\Adapter\Db', 
      'ZfcUser\Authentication\Adapter\Ldap' => 'ZfcUser\Authentication\Adapter\Ldap', 
      ... 
     ), 
     ... 
} 

Если я переворачивать приоритет ценности он изменяет, кто может войти Какой бы адаптер сначала разрешает логины, но другой адаптер никогда не используется. Кто-нибудь знает, как заставить ZfcUser вернуться к следующему адаптеру, если первый не удастся?

ответ

0

Выпуск фиксирован https://github.com/SocalNick/ScnSocialAuth/issues/123

Для меня только я последовал matwright (GitHub) ответ (см https://github.com/matwright/ScnSocialAuth), поэтому я заменить два файла:

  1. socalnick/SRC/ScnSocialAuth/Controller/Plugin/ScnSocialAuthProvider .php от ScnSocialAuthProvider.php
  2. socalnick/SRC/ScnSocialAuth/контроллер/UserController.php от UserController.php

И в zfcuser.global.php:

'auth_adapters' => array( 100 => 'ZfcUser\Authentication\Adapter\Db', ),

Надеюсь, эта помощь ...

Смежные вопросы