I’m working on Symfony 6.4, and I went to define two LDAP services (one main, one backup).
I have this configuration :
services:
...
main_ldap_adapter:
class: SymfonyComponentLdapAdapterExtLdapAdapter
arguments:
- host: '%env(LDAP_SERVER_URL)%'
port: 389
options:
protocol_version: 3
referrals: false
backup_ldap_adapter:
class: SymfonyComponentLdapAdapterExtLdapAdapter
arguments:
- host: '%env(LDAP_SERVER_BACKUP_URL)%'
port: 389
options:
protocol_version: 3
referrals: false
main_ldap:
class: SymfonyComponentLdapLdap
arguments: ['@ldap_adapter']
tags: ['ldap']
backup_ldap:
class: SymfonyComponentLdapLdap
arguments: ['@backup_ldap_adapter']
tags: ['ldap']
...
My security.yaml file :
security:
...
providers:
ldap_main_provider:
ldap:
service: main_ldap
base_dn: '%env(LDAP_BASE_DN)%'
search_dn: '%env(LDAP_SEARCH_DN)%'
search_password: '%env(LDAP_SEARCH_PASSWORD)%'
default_roles: ROLE_USER
uid_key: uid
ldap_backup_provider:
ldap:
service: backup_ldap
base_dn: '%env(LDAP_BASE_DN)%'
search_dn: '%env(LDAP_SEARCH_DN)%'
search_password: '%env(LDAP_SEARCH_PASSWORD)%'
default_roles: ROLE_USER
uid_key: uid
...
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/api/login
provider: ldap_main_provider
form_login_ldap:
login_path: api_login
check_path: api_login
username_parameter: login
password_parameter: password
service: SymfonyComponentLdapLdap
dn_string: '%env(LDAP_DN_STRING)%'
success_handler: AppSecurityAuthenticationAuthenticationSuccessHandler
failure_handler: AppSecurityAuthenticationAuthenticationFailureHandler
...
When I try to connect, I have this error : “Cannot check credentials using the “SymfonyComponentLdapLdap” ldap service, as such service is not found. Did you maybe forget to add the “ldap” service tag to this service?”
Do you know why ?
When I’ve only one service defined this way :
SymfonyComponentLdapLdap:
arguments: ['@ldap_adapter']
tags: ['ldap']
and I use SymfonyComponentLdapLdap
in my security.providers.ldap_main_provider.ldap.service
, it’s working…
Do you know what I can do please ?
Thanks !
I see my services in php bin/console debug:container | grep ldap
New contributor