Puncte:0

Integrarea LDAP nu funcționează cu Drupal 9 (folosind Ludwig ca alternativă de compozitor - funcționa sub Drupal 8)

drapel cn

Am o problemă de la actualizarea la Drupal 9, în ceea ce privește integrarea LDAP. Anterior, în timp ce aveam Drupal 8, integrasem cu succes LDAP din școlile mele pentru autentificarea utilizatorilor, folosind modulul contributiv corespunzător. Cu toate acestea, după actualizarea la Drupal 9, integrarea LDAP a încetat să funcționeze și ori de câte ori un utilizator încearcă să se autentifice, primește o eroare de ecran alb „Site-ul web a întâmpinat o eroare neașteptată. Vă rugăm să încercați din nou mai târziu”.

Acum, verificând jurnalele, văd întotdeauna această eroare:

    Eroare: Clasa „Symfony\Component\OptionsResolver\OptionsResolver” nu a fost găsită în Symfony\Component\Ldap\Adapter\AbstractConnection->__construct() (linia 26 din /var/www/www-dev/modules/ludwig/lib/grahl- ldap/source/Adapter/AbstractConnection.php)
#0 /var/www/www-dev/modules/ludwig/lib/grahl-ldap/source/Adapter/ExtLdap/Adapter.php(41): Symfony\Component\Ldap\Adapter\AbstractConnection->__construct()
#1 /var/www/www-dev/modules/ludwig/lib/grahl-ldap/source/Ldap.php(40): Symfony\Component\Ldap\Adapter\ExtLdap\Adapter->getConnection()
#2 /var/www/www-dev/modules/ldap/ldap_servers/src/LdapBridge.php(143): Symfony\Component\Ldap\Ldap->bind()
#3 /var/www/www-dev/modules/ldap/ldap_servers/src/ServerListBuilder.php(92): Drupal\ldap_servers\LdapBridge->bind()
#4 /var/www/www-dev/modules/ldap/ldap_servers/src/ServerListBuilder.php(58): Drupal\ldap_servers\ServerListBuilder->checkStatus()
#5 /var/www/www-dev/core/lib/Drupal/Core/Entity/EntityListBuilder.php(219): Drupal\ldap_servers\ServerListBuilder->buildRow()
#6 /var/www/www-dev/core/lib/Drupal/Core/Entity/Controller/EntityListController.php(23): Drupal\Core\Entity\EntityListBuilder->render()
#7 [funcție internă]: Drupal\Core\Entity\Controller\EntityListController->listing()
#8 /var/www/www-dev/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array()
#9 /var/www/www-dev/core/lib/Drupal/Core/Render/Renderer.php(578): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#10 /var/www/www-dev/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext()
#11 /var/www/www-dev/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerContext()InderRender
#12 /var/www/www-dev/vendor/symfony/http-kernel/HttpKernel.php(158): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#13 /var/www/www-dev/vendor/symfony/http-kernel/HttpKernel.php(80): Symfony\Component\HttpKernel\HttpKernel->handleRaw()
#14 /var/www/www-dev/core/lib/Drupal/Core/StackMiddleware/Session.php(57): Symfony\Component\HttpKernel\HttpKernel->handle()
#15 /var/www/www-dev/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(47): Drupal\Core\StackMiddleware\Session->handle()
#16 /var/www/www-dev/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle()
#17 /var/www/www-dev/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass()
#18 /var/www/www-dev/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\page_cache\StackMiddleware\PageCache->handle()
#19 /var/www/www-dev/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(52): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle()
#20 /var/www/www-dev/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle()
#21 /var/www/www-dev/core/lib/Drupal/Core/DrupalKernel.php(717): Stack\StackedHttpKernel->handle()
#22 /var/www/www-dev/index.php(19): Drupal\Core\DrupalKernel->handle()
#23 {principal}

Acum, este important să rețineți că Nu întrețin site-ul prin Composer - a fost instalat înainte ca Composer să fie soluția implicită pentru instalare/actualizare. Prin urmare, actualizez nucleul și modulele manual.

Am folosit cu succes un modul foarte util - Ludwig - care este un Alternativă la Composer pentru modulele contrib care necesită biblioteci PHP externe.

Într-adevăr, Ludwig pare să găsească bibliotecile externe necesare pentru LDAP, vezi captura de ecran (și de aici vine eroarea, lib grahl/ldap).

ludwig găsește pachetele necesare

Acum, am căutat pachetul grahl/ldap și documentația și listează o bibliotecă numită opțiuni-rezolvator ca o cerinţă.

Am căutat în lista furnizorului/symfony pe serverul meu web și, deși văd mai multe biblioteci (cum ar fi polyfill-php80, care este o altă cerință a grahl/ldap), nu văd că opțiuni-resolver lib.

Am încercat să descarc manual fișierele (run compozitorul necesită Symfony/options-resolver într-un nou director arbitrar, am văzut ce a preluat și am copiat conținutul folderului opțiuni-resolver în vendor/symfony). Totuși, nu sunt surprins că eroarea continuă, nu poate găsi clasa OptionsResolver.php, chiar dacă „există” acolo unde ar trebui să fie (?). Bănuiesc că păstrează un registru cu ceea ce există - nu pur și simplu verifică calea și caută un fișier ....

Ar putea suna stupid, dar sunt complet în întuneric aici - evident că nu sunt foarte experimentat în toate astea..

Aș fi foarte recunoscător dacă cineva ar putea oferi un indiciu .. Scuze că am scris o întrebare prea detaliată, am vrut doar să ofer cât mai multe informații posibil..

Ar trebui să instalez opțiuni-resolver prin Composer, deși nu l-am folosit până acum pentru a instala/actualiza anterior?

Orice ajutor ar fi foarte apreciat..

Kevin avatar
drapel in
Cu descărcarea manuală, bănuiesc că încărcătorul automat pe care Composer îl generează în mod normal nu este actualizat, astfel încât spațiile de nume nu sunt rezolvate în fișierele din furnizor.
thomas avatar
drapel cn
cam târziu, dar apreciază-ți prietenul de contribuție. Am bănuit că trebuie să fi fost așa ceva. Nu o pot rezolva, dar îmi dau seama că poate cea mai bună soluție ar fi să încerc și să-mi migrez întregul site la compozitor, pentru că vor fi probleme similare peste tot .. Se pare că există ghiduri pentru asta, ca aici: https://www.drupal.org/docs/installing-drupal/add-composer-to-an-existing-site, sau aici: https://github.com/grasmash/composerize-drupal printre altele, așa că voi incearca asta cand gasesc timp. Vă mulțumesc din nou pentru contribuție.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.