में विफल रहता है मुझे काम पर प्रमाणीकरण प्राप्त करने में परेशानी हो रही है लेकिन यह केवल बहुत विशिष्ट परिस्थितियों में होती है। प्रमाणीकरण किसी तृतीय पक्ष एपीआई के माध्यम से किया जाता है, इसलिए मैंने अपना खुद का उपयोगकर्ता प्रदाता वर्ग लिखा है और उस वर्ग के अंदर कुछ कोड है जो एपीआई और सिम्फनी के बीच डेटा को सिंक करता है, उस सिंकिंग प्रक्रिया के हिस्से के रूप में यह निर्धारित करता है कि उपयोगकर्ता की कौन सी भूमिकाएं होनी चाहिए। ऐसा करने के बाद यह कई लोगों के रिश्तों के माध्यम से भूमिकाओं और उपयोगकर्ता के बीच संबंध स्थापित करता है।प्रमाणीकरण चुपचाप सिम्फनी 2
मेरे उपयोगकर्ता ऑब्जेक्ट में getRoles() विधि डेटाबेस से भूमिका वस्तुएं प्राप्त करती है और इसे तारों की सरणी में बदल देती है, भूमिका के नाम मेरे डेटाबेस से आते हैं और सभी ROLE_ से शुरू होते हैं।
यदि मैं किसी ऐसे खाते से लॉगिन करता हूं जिसमें कोई अतिरिक्त भूमिका नहीं होनी चाहिए तो यह ठीक काम करता है, लेकिन अगर मैं ऐसे खाते में लॉगिन करता हूं जिसमें भूमिकाएं होनी चाहिए तो मुझे बिना किसी त्रुटि संदेश के लॉगिन स्क्रीन पर वापस भेज दिया जाएगा।
मैं लॉग की जाँच की और इन प्रविष्टियों को देखा है:
security.INFO: User "[email protected]" has been authenticated successfully [] []
event.DEBUG: Notified event "security.interactive_login" to listener "Pogo\MyBundle\Listener\LoginListener::onSecurityInteractivelogin". [] []
event.DEBUG: Listener "Symfony\Component\Security\Http\Firewall::onKernelRequest" stopped propagation of the event "kernel.request". [] []
event.DEBUG: Listener "Symfony\Bundle\FrameworkBundle\EventListener\RouterListener" was not called for event "kernel.request". [] []
event.DEBUG: Listener "Symfony\Bundle\AsseticBundle\EventListener\RequestListener" was not called for event "kernel.request". [] []
event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\Security\Http\Firewall\ContextListener::onKernelResponse". [] []
security.DEBUG: Write SecurityContext in the session [] []
event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse". [] []
event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\SecurityBundle\EventListener\ResponseListener::onKernelResponse". [] []
event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bridge\Monolog\Handler\FirePHPHandler::onKernelResponse". [] []
event.DEBUG: Notified event "kernel.response" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\CacheListener::onKernelResponse". [] []
event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse". [] []
event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse". [] []
event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\RouterListener::onEarlyKernelRequest". [] []
event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\SessionListener::onKernelRequest". [] []
event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\Security\Http\Firewall::onKernelRequest". [] []
security.INFO: Populated SecurityContext with an anonymous Token [] []
event.DEBUG: Notified event "kernel.exception" to listener "Symfony\Component\Security\Http\Firewall\ExceptionListener::onKernelException". [] []
security.DEBUG: Access denied (user is not fully authenticated); redirecting to authentication entry point [] []
security.DEBUG: Calling Authentication entry point [] []
मैं जैसे ही यह फ़ायरवॉल यह एक गुमनाम टोकन के माध्यम से ही पाता है की जाँच करता है समझ में नहीं आता कि यह कैसे शीर्ष पर प्रमाणीकृत किया जा सकता है, तो यही कारण है कि यह संभवतः मुझे वापस लॉगिन स्क्रीन पर भेजता है।
मेरे फ़ायरवॉल/access_control सेटिंग्स हैं:
firewalls:
public:
pattern: /.*
anonymous: true
tessitura_login:
login_path: /account/login
check_path: /secure/login_check
logout:
path: /secure/logout
target:/
access_control:
- { path: ^/secure/.*, role: ROLE_USER }
- { path: ^/admin.*, role: ROLE_ADMIN }
- { path: ^/account/login/?, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
इस के साथ किसी भी मदद की व्यापक सराहना की जाएगी, मैं अब इस पर कुछ घंटे बिताए और पूरी तरह से स्टंप्डया हूं।
मुझे नहीं लगता कि आपको अपनी समस्या का उत्तर मिल गया है? – Clint
क्षमा करें क्लिंट, शायद आपके लिए थोड़ा देर हो चुकी है लेकिन यह पता चला कि सत्र क्षेत्र बहुत छोटा था। कोड सत्र में काफी सारे डॉक्टर ऑब्जेक्ट्स को संग्रहीत कर रहा था जो इस त्रुटि के कारण डेटाबेस फ़ील्ड में फिट नहीं होगा – pogo