Пользовательский поставщик аутентификации в приложении SilexPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Пользовательский поставщик аутентификации в приложении Silex

Сообщение Anonymous »

Я пытаюсь написать собственный поставщик аутентификации для LDAP-аутентификации, используя документацию Silex — Определение пользовательского поставщика аутентификации.

Но если я посмотрю на $app['security. authentication_providers'] есть два провайдера. Тот, который я определил App\LdapAuthenticationProvider и один Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider

И когда я пытаюсь авторизовать пользователя, я получаю сообщение об ошибке, потому что есть вызов App\LdapUserProvider::loadUserByUsername() из класса DaoAuthenticationProvider.

Если бы у меня был только один провайдер $app['security.authentication_providers'] Думаю, у меня не должно возникнуть ошибки, поскольку мой LDAP-провайдер не вызывает loadUserByUsername.

Вот дамп $ app['security.authentication_providers']

Код: Выделить всё

array (size=2)
0 => object(App\LdapAuthenticationProvider)[194]
private 'userProvider' =>
object(App\LdapUserProvider)[176]
private 'ldap' => resource(57, ldap link)
private 'defaultRoles' =>
array (size=1)
...
private 'providerKey' => string 'default' (length=7)
1 => object(Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider)[195]
private 'encoderFactory' =>
object(Symfony\Component\Security\Core\Encoder\EncoderFactory)[197]
private 'encoders' =>
array (size=1)
...
private 'userProvider' =>
object(App\LdapUserProvider)[176]
private 'ldap' => resource(57, ldap link)
private 'defaultRoles' =>
array (size=1)
...
private 'hideUserNotFoundExceptions' (Symfony\Component\Security\Core\Authentication\Provider\UserAuthenticationProvider) => boolean true
private 'userChecker' (Symfony\Component\Security\Core\Authentication\Provider\UserAuthenticationProvider) => object(Symfony\Component\Security\Core\User\UserChecker)[196]
private 'providerKey' (Symfony\Component\Security\Core\Authentication\Provider\UserAuthenticationProvider) => string 'default' (length=7)
Итак, кто-нибудь знает, почему существует лишний провайдер и как от него избавиться?

Там — это код для приложения начальной загрузки, LdapAuthenticationListener и LdapAuthenticationProvider.

Подробнее здесь: https://stackoverflow.com/questions/167 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»