Пользовательский провайдер аутентификации в приложении Silex

Я пытаюсь написать собственный провайдер аутентификации для LDAP-аутентификации, используя документацию Silex -Определение собственного провайдера аутентификации.

Но если я смотрю в$app['security.authentication_providers'] Есть два провайдера. Тот, который я определилApp\LdapAuthenticationProvider и одинSymfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider

И когда я пытаюсь авторизовать пользователя, я получаю сообщение об ошибке, потому что есть вызовApp\LdapUserProvider::loadUserByUsername() из класса DaoAuthenticationProvider.

Если бы у меня был только один провайдер в$app['security.authentication_providers'] Я думаю, что я не должен получить ошибку, потому что мой LDAP-провайдер не вызывает loadUserByUsername.

Вот свалка$app['security.authentication_providers']

array (size=2)
  0 => object(App\LdapAuthenticationProvider)[194]
    private 'userProvider' => 
      object(App\LdapUserProvider)[176]
        private 'ldap' => resource(57, ldap link)
        private 'defaultRoles' => 
          array (size=1)
          ...
    private 'providerKey' => string 'default' (length=7)
  1 => object(Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider)[195]
    private 'encoderFactory' => 
      object(Symfony\Component\Security\Core\Encoder\EncoderFactory)[197]
        private 'encoders' => 
          array (size=1)
          ...
    private 'userProvider' => 
      object(App\LdapUserProvider)[176]
        private 'ldap' => resource(57, ldap link)
        private 'defaultRoles' => 
          array (size=1)
          ...
    private 'hideUserNotFoundExceptions' (Symfony\Component\Security\Core\Authentication\Provider\UserAuthenticationProvider) => boolean true
    private 'userChecker' (Symfony\Component\Security\Core\Authentication\Provider\UserAuthenticationProvider) => object(Symfony\Component\Security\Core\User\UserChecker)[196]
    private 'providerKey' (Symfony\Component\Security\Core\Authentication\Provider\UserAuthenticationProvider) => string 'default' (length=7)

Итак, кто-нибудь знает, почему есть дополнительный провайдер и как от него избавиться?

Есть код длязагрузочное приложение, LdapAuthenticationListener а такжеLdapAuthenticationProvider.

Ответы на вопрос(1)

Ваш ответ на вопрос