Редактировать: моя проблема была решена, см. Внизу поста.
Я пытался подключиться к LDAP с Symfony 3.4, и у меня возникли некоторые проблемы здесь.
Я настроил свои services.yml и security.yml, следуя документации по https://symfony.com/doc/3.4/components/ldap.html и https://symfony.com/doc/3.4/security/ldap.html , а также https://symfony.com/doc/3.4/reference/configuration/security.html
Вот мои услуги.yaml
services:
Symfony\Component\Ldap\Ldap:
arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter']
Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
arguments:
- host: myaddress
port: 389
#encryption: tls
options:
protocol_version: 3
referrals: false
А вот и мой security.yaml
security:
providers:
my_ldap:
ldap:
service: Symfony\Component\Ldap\Ldap
base_dn: dc=corp,dc=com
search_dn: "dc=corp,dc=com"
search_password: password
default_roles: ROLE_USER
uid_key: uid
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
provider: my_ldap
anonymous: true
form_login_ldap:
login_path: login
check_path: login
service: Symfony\Component\Ldap\Ldap
dn_string: 'uid={username},ou=People,dc=corp,dc=com'
logout_on_user_change: true
logout:
path: logout
target: login
role_hierarchy:
ROLE_ADMIN: ROLE_MANAGER
ROLE_MANAGER: ROLE_USER
- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/manager, roles: ROLE_MANAGER }
- { path: ^/myaccount, roles: ROLE_USER }
- { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY }
Я не знаю, почему зависимость не найдена.Я проверил пакет Ldap с композитором, и все было там.Чего мне не хватает?
Заранее спасибо за любые подсказки или ответы.
Редактировать: Мне удалось устранить мою ошибку.Мой синтаксис service.yaml был неверным, я использовал:
Symfony\Component\Ldap\Ldap:
arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter']
Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
arguments:
#...
Где это должно было быть:
Symfony\Component\Ldap\Ldap:
arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter']
Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
arguments:
Табулирование для второго сервиса было сделано плохо.