將chain_provider與Doctrine和自定義用戶提供程序一起使用時,是否也使用提供程序的身份驗證提供程序?chain_provider和身份驗證提供程序
我有一個問題,用在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 \ ProviderDaoAuthenticationProvide r」調用,並始終返回「The present password is invalid」,因爲它不使用良好的身份驗證提供程序來驗證憑據。
但是,如果直接使用入口點,它正在工作。問題是,我希望同時使用原則和LDAP登錄,如果主義失敗了,它回落到LDAP:
firewalls:
secured_area:
pattern: /admin/
egzakt_backend_ldap:
check_path: /admin/login_check
login_path: /admin/login
用這種方式,它採用了很好的驗證提供者和使用者提供。
任何人都有關於我失蹤的想法嗎?