Niestandardowy dostawca uwierzytelniania w aplikacji silex

Próbuję napisać niestandardowy dostawca uwierzytelniania dla uwierzytelniania LDAP przy użyciu dokumentacji silex -Definiowanie niestandardowego dostawcy uwierzytelniania.

Ale jeśli się zajrzę$app['security.authentication_providers'] są dwaj dostawcy. Jeden, który zdefiniowałemApp\LdapAuthenticationProvider i jedenSymfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider

A kiedy próbuję autoryzować użytkownika, otrzymuję błąd, ponieważ jest wywołanie aApp\LdapUserProvider::loadUserByUsername() z klasy DaoAuthenticationProvider.

Gdybym miał tylko jednego dostawcę$app['security.authentication_providers'] Myślę, że nie powinienem otrzymywać błędu, ponieważ mój dostawca LDAP nie wywołuje loadUserByUsername.

Oto zrzut z$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)

Czy ktoś wie, dlaczego istnieje dodatkowy dostawca i jak mogę się go pozbyć?

Jest kod dlaaplikacja ładująca, LdapAuthenticationListener iLdapAuthenticationProvider.

questionAnswers(1)

yourAnswerToTheQuestion