LdapBundle (Борис Мроэль) с несколькими поставщиками (Db и LDAP), только взять поставщика БД

У меня проблема с использованием 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: /homeaccess_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" но, похоже, это не проверяется.

(Мне нужна аутентификация базы данных, чтобы получить роли пользователя (когда я закончу с этой аутентификацией @! * …))

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector