我正在尝试使用fosUserBundle实现登录操作。我已经成功地仅使用LDAP手动执行此操作但是我要做的是仅将应用程序访问应用程序数据库中添加的用户。
因此,即使您在LDAP上并输入正确的凭据,如果您的用户名未存储在数据库中,您将无法登录。所以最终登录将使用存储在数据库中的用户名和LDAP中使用的密码。
有关如何使用Fosuserbundle实现该功能的任何想法?
编辑
我已经配置了fosuser捆绑包,它使用了用户名和密码,我还添加了一个名为myldap的新提供程序,我与fosuserbundle提供程序链接。
这个我的security.yml文件看起来像这样:
chain_provider:
chain:
providers: [my_ldap,fos_userbundle]
fos_userbundle:
id: fos_user.user_provider.username
my_ldap:
ldap:
service: ldap
base_dn: dc=cdbdx,dc=biz
search_dn: "ou=UTILISATEURS,cn=*{username}*,dc=cdbdx,dc=biz"
search_password: xxxxxxx
default_roles: ROLE_USER
uid_key: xxxxxx
filter: '(|(sn={username}*)(mailnickname={username}*))'
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
和主防火墙我使用了这样的链提供商:
main:
pattern: ^/
form_login:
provider: chain_provider
csrf_token_generator: security.csrf.token_manager
它知道我正在使用ldap,但它会返回:
由于系统问题,无法处理身份验证请求。