Silex belgelerini kullanarak LDAP kimlik doğrulaması için özel kimlik doğrulama sağlayıcısı yazmayı deniyorum - Defining a custom Authentication Provider.Silex uygulamasında özel kimlik doğrulama sağlayıcısı
Ancak, $app['security.authentication_providers']
'a bakarsanız iki sağlayıcı vardır. Ben App\LdapAuthenticationProvider
tanımlanmış Bir ve Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider
biri Ve kullanıcıyı yetkilendirmek çalıştığınızda sınıf DaoAuthenticationProvider bir App\LdapUserProvider::loadUserByUsername()
çağrısı olduğundan hatası alıyorum.
$app['security.authentication_providers']
yalnızca bir sağlayıcı olurdu Ben LDAP sağlayıcım loadUserByUsername çağrısı çünkü hata almam gerektiğini düşünüyorum. İşte
Yani $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)
dökümü, ekstra sağlayıcı vardır neden kimse biliyor mu ve nasıl ondan kurtulmak olabilir mi?
bootstraping application, LdapAuthenticationListener ve LdapAuthenticationProvider için kod vardır.
Yine de, neden '' $ app ['security.authentication_providers'] '' ın iki sağlayıcıya sahip olduğunu anlayamıyor. – vansanblch
Yaptığınız son kodu gönderebilir misiniz? – heapOverflow
Maalesef yapamam. Bu proje şimdi çekildi ve ona erişimim yok. Ancak asıl fikir, UsernamePasswordFormAuthenticationListener'den genişleterek arşivlediğim doğru LdapAuthenticationListener'ı yazmaktı. Ve ldap kimlik doğrulamasını işlemek için yeni fabrika kaydetmek için bir bootstrap bir kod var. Ayrıca pastebin koduna bir göz atın, linku ilk yorumda bulunabilir. Sanırım bu derslerde kodları çok fazla değiştirmedim. – vansanblch