symfony - Symfony Ldap:无法使用“Symfony\Component\Ldap\Ldap”ldap 服务检查凭据,因为找不到此类服务
问题描述
我想将我的自定义 Ldap 用户提供程序从 symfony 4.1.3 迁移到 5.4.0。通过以下实现,它在 4.1.3 中可以正常工作,但在 5.4.0 中使用相同的配置,我收到以下错误消息:
无法使用“Symfony\Component\Ldap\Ldap”ldap 服务检查凭据,因为找不到此类服务。您是否可能忘记将“ldap”服务标签添加到此服务?
编辑: 服务配置中的以下行解决了该问题,如错误消息中所述:
tags: ['ldap']
服务.yaml:
services:
Symfony\Component\Ldap\Ldap:
arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter']
tags: ['ldap']
Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
arguments:
- host: '%ldap_host%'
port: 3269
encryption: ssl
options:
protocol_version: 3
referrals: false
security.user.provider.ldap:
class: App\Security\LdapUserProvider
arguments: {0: null, 1: null, 2: null, 3: null, 4: null, 5: null, 6: null, 7: null, 8: null}
安全.yaml:
security:
providers:
provider_ldap:
ldap:
service: Symfony\Component\Ldap\Ldap
base_dn: dc=ad,dc=...
search_dn: cn=...
search_password: *
default_roles: ROLE_LDAP_USER
uid_key: cn
filter: ({uid_key}={username})
firewalls:
main:
pattern: ^/
form_login_ldap:
login_path: login
check_path: login
provider: provider_ldap
#csrf_token_generator: security.csrf.token_manager
service: Symfony\Component\Ldap\Ldap
dn_string: 'cn={username},ou=User,ou=...'
logout:
path: /logout
target: /
解决方案
推荐阅读
- wordpress - Woocommerce 将在当前产品中显示其他类别的所有产品
- angular - 角度数据表集成
- c# - 带有插值字符串的 ExecuteSqlCommand 导致“输入语法无效”错误
- python - 使用 spyder 进行 Python 分析:成分的时间不等于函数的总时间
- lightgbm - 使用具有平均精确召回分数的 lightgbm
- office-ui-fabric - Office UI Frabric 响应式枢轴
- android - SQLite 中未定义的函数 SUM
- perl - IO::Socket::SSL 在 IIS 8.5 中失败
- c# - 如何禁用“您确定要离开此页面”警报?
- vba - 自动筛选删除仅在从特定工作表运行宏时有效