аутентификатор Symfony Guard не вызывается - PullRequest
0 голосов
/ 25 сентября 2018

Я работаю с ldaptools-bundle , fosuserbundle в конечной точке API.

Мой security.yaml выглядит следующим образом

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: bcrypt
        LdapTools\Bundle\LdapToolsBundle\Security\User\LdapUser: plaintext

    role_hierarchy:
        ROLE_ADMIN: ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        chain_provider:
            chain:
                providers: [ldap, fos_userbundle]
        fos_userbundle:
            id: fos_user.user_provider.username_email
        ldap:
            id: ldap_tools.security.user.ldap_user_provider

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false
        login:
            pattern:  ^/login
            stateless: true
            anonymous: true
            provider: ldap
            json_login:
                check_path: /login
                username_path: username
                password_path: password
                success_handler: lexik_jwt_authentication.handler.authentication_success
                failure_handler: lexik_jwt_authentication.handler.authentication_failure
            guard:
                authenticators:
                    - ldap_tools.security.ldap_guard_authenticator
        main:
            pattern:   ^/
            provider: fos_userbundle
            stateless: true
            anonymous: true
            guard:
                authenticators:
                    - lexik_jwt_authentication.jwt_token_authenticator

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

проблема в том, что аутентификатор ldap guard не проверяет учетные данные.

Когда я заменяю провайдера на ldap вместо fosuser, я получаю код ошибки 500 в классе BasePasswordEncoder, это также происходит, если я использую chain_provider

Предупреждение: hash_equals (): ожидается, что известная строка является строкой, задано значение NULL

Есть конфигурация промаха или что-то еще?Рабочий процесс должен быть следующим:

  • Пользователь аутентифицирован на сервере ldap
  • Пользователь загружен правильно, а затем lexik позаботится о генерации токена

Примечание: рабочий процесс работает без ldap и токен генерируется.

Заранее спасибо!

...