Ldap Bundle(Boris Model)有多个提供者(Db和LDAP),只带DB提供者

时间:2015-03-18 13:50:50

标签: php symfony ldap bundle

我在使用LdapBundle同时使用身份验证数据库和ldap时遇到问题。

我试着这样做:

我的security.yml

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密码时,我遇到了“Bad Credential”错误。 (如果仅检查数据库,则看似逻辑:/)

根据捆绑文档我放"bind_username_before: true"但似乎没有检查它。

(我需要数据库身份验证才能获得用户角色(当我完成此@!*身份验证时...)

0 个答案:

没有答案