Symfony 3.4 - 服务 "Symfony\Component\Ldap\Ldap" 依赖于不存在的服务 "Symfony\Component\Ldap\Adapter\ExtLdap\Adapter"
Symfony 3.4 - The service "Symfony\Component\Ldap\Ldap" has a dependency on a non-existent service "Symfony\Component\Ldap\Adapter\ExtLdap\Adapter"
编辑:我的问题已解决,请参阅 post 底部。
我一直在尝试使用 Symfony 3.4 连接到 LDAP,但我在这里遇到了很多麻烦。
我已经按照 https://symfony.com/doc/3.4/components/ldap.html and https://symfony.com/doc/3.4/security/ldap.html and also https://symfony.com/doc/3.4/reference/configuration/security.html
中的文档设置了我的 services.yml 和 security.yml
这是我的 services.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 }
我不知道为什么找不到依赖项。我已经用 composer 检查了 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:
第二个服务的表格制作得很糟糕。
services.yaml 的语法错误:一处缩进错位
编辑:我的问题已解决,请参阅 post 底部。
我一直在尝试使用 Symfony 3.4 连接到 LDAP,但我在这里遇到了很多麻烦。
我已经按照 https://symfony.com/doc/3.4/components/ldap.html and https://symfony.com/doc/3.4/security/ldap.html and also https://symfony.com/doc/3.4/reference/configuration/security.html
中的文档设置了我的 services.yml 和 security.yml这是我的 services.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 }
我不知道为什么找不到依赖项。我已经用 composer 检查了 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:
第二个服务的表格制作得很糟糕。
services.yaml 的语法错误:一处缩进错位