При использовании chain_provider с Doctrine и пользовательским провайдером пользователя, предполагается ли также использовать провайдер аутентификации провайдера?
У меня возникла проблема с использованием пользовательского провайдера пользователя в chain_provider, как описано ниже:
providers:
chain_provider:
providers: [doctrine, egzakt_backend_ldap]
doctrine:
entity: { class: Egzakt\Backend\UserBundle\Entity\User }
egzakt_backend_ldap:
id: egzakt_backend_ldap.security.user.provider
firewalls:
secured_area:
pattern: /admin/
form_login:
provider: chain_provider
check_path: /admin/login_check
login_path: /admin/login
Проблема в том, что поставщик пользователя egzakt_backend_ldap вызывается правильно, но не хорошим поставщиком аутентификации.Вместо того, чтобы вызываться «LdapAuthenticationProvider», который я объявил как сервис на своей фабрике, он вызывается как «Symfony \ Component \ Security \ Core \ Authentication \ ProviderDaoAuthenticationProvider» и всегда возвращает «Представленный пароль недействителен», потому чтоон не использует хорошего провайдера аутентификации для проверки учетных данных.
НО, если использовать точку входа напрямую, он работает.Проблема в том, что я хочу использовать ОБА Doctrine и Ldap для входа в систему, если Doctrine не удается, он возвращается к Ldap:
firewalls:
secured_area:
pattern: /admin/
egzakt_backend_ldap:
check_path: /admin/login_check
login_path: /admin/login
Таким образом, он использует хороший поставщик аутентификации и пользовательский поставщик.
Кто-нибудь имеет представление о том, что мне не хватает?