symfony guard authenticator is not being called

161 views Asked by At

I'm working with ldaptools-bundle, fosuserbundle in an api endpoint.

My security.yaml looks like this

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 }

the problem is thath the ldap guard authenticator is not checking the credentials.

When I change the provider to ldap instead fosuser I got a 500 error code in BasePasswordEncoder class, it happens also if I use the chain_provider

Warning: hash_equals(): Expected known_string to be a string, null given

Is there a miss config or something? The workflow should be as follow:

  • The user is authenticated against ldap server
  • The user is loaded correctly and then lexik takes care of the token generation

Note: The workflow works without ldap and the token is generated.

Thanks in advance!

0

There are 0 answers