Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 具有多个提供程序(Db和LDAP)的LdapBundle(Boris Mroel),仅接受Db提供程序_Php_Symfony_Ldap_Bundle - Fatal编程技术网

Php 具有多个提供程序(Db和LDAP)的LdapBundle(Boris Mroel),仅接受Db提供程序

Php 具有多个提供程序(Db和LDAP)的LdapBundle(Boris Mroel),仅接受Db提供程序,php,symfony,ldap,bundle,Php,Symfony,Ldap,Bundle,我在将LdapBundle与身份验证数据库和ldap一起使用时遇到问题 我试着这样做: 我的安全 security: encoders: IMAG\LdapBundle\User\LdapUser: plaintext Sermeta\HomeBundle\Entity\User: algorithm: sha1 encode_as_base64: false iterations: 1 role_h

我在将LdapBundle与身份验证数据库和ldap一起使用时遇到问题

我试着这样做:

我的安全

security:
encoders:
    IMAG\LdapBundle\User\LdapUser:  plaintext
    Sermeta\HomeBundle\Entity\User: 
        algorithm:        sha1
        encode_as_base64: false
        iterations:       1

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

providers:
    multiples:
        chain:
            providers: [administrators, ldap]
    ldap:
        id: imag_ldap.security.user.provider

    administrators:
        entity: { class: "SermetaHomeBundle:User", property: username }

firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false

    login_firewall:
        pattern:    ^/login$
        anonymous:  ~    
        imag_ldap:
            check_path: login_check
            login_path: login
            provider: multiples
        logout:
            path:           /logout
            target:         /home

    secured_area:
        pattern:    ^/
        imag_ldap:
            provider: multiples
        imag_ldap:
            check_path: login_check
            login_path: login
            provider: multiples
        logout:
            path:   /logout
            target: /home



access_control:
    - { path: ^/admin, roles: ROLE_ADMIN }
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }

imag_ldap:
    client:
        host: myipadress
        port: 389
        skip_roles: true
        bind_username_before: true
user:
    base_dn: dc=mydc,dc=fr
    name_attribute: uid
但当我测试这个时,我可以使用数据库密码记录用户,但当我尝试使用ldap密码时,我有一个“坏凭证”错误。(如果仅检查数据库:/,则似乎是逻辑)

根据bundle文档,我将“bind\u username\u before:true”放在了前面,但它似乎没有检查它


(我需要数据库身份验证来获取用户角色(当我完成此@!*身份验证时…)

您是否只能使用LDAP用户提供程序登录用户(无数据库)?如果没有,symfony日志(logs/dev.log)中是否有任何日志消息?您是对的。我只尝试过ldap身份验证,我有:[2015-03-23 15:59:10]ldap_connection.ERROR:ldap返回了一个错误,代码为1:Operations ERROR[][]我有另一个站点,只使用PHP(没有框架),对于相同的主机ip和dc,我连接没有问题。您必须使用LDAP配置并获得连接才能工作相同的连接可以使用基本的PHP代码。ldapbundle必须有一个管理员帐户才能工作吗?所以我做了自己的SecurityBundle,现在我完全有了我需要的,ldap连接工作得很好。谢谢你的帮助