使用fosuserbundle创建两层登录

时间:2017-06-16 13:24:14

标签: php symfony ldap fosuserbundle

我正在尝试使用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,但它会返回:

由于系统问题,无法处理身份验证请求。

0 个答案:

没有答案