php - Symfony2, how use $_POST values from FOSUser as bind credentials in Fr3d_ldap bundle? -


मैंने कॉन्फ़िगर किया है और अब मेरे पास एक config.yml है: config.yml

अब मुझे समस्या है कि पिछले कार्यान्वयन (Symfony1 में) उपयोगकर्ता & amp; पासवर्ड को FOSUser के लॉगइन फ़ॉर्म द्वारा प्रदान किया गया था LDAP bind () के लिए क्रेडेंशियल्स के रूप में उपयोग किया गया था, यह सही था क्योंकि हमें एलडीएपी search () को उन सभी अनुमतियों तक सीमित करने की आवश्यकता थी ।

अब मैं वही करना चाहूंगा और उन $ _POST वेरिएबल्स को अवरुद्ध करूँगा और यूज़रनेम और amp; प्रत्येक लॉगिन पर पासवर्ड पैरामीटर।

मैं यह कैसे कर सकता हूं? मैंने अपनी वर्तमान जरूरतों को पूरा करने के लिए Fr3d \ LDAPBundle को संशोधित किया है, यह मेरी समस्या को हल करता है और उम्मीद है कि किसी:

संपादित करें: विक्रेता \ fr3d \ ldap-bundle \ FR3D \ LdapBundle \ Ldap \ LdapManager.php

इस फ़ंक्शन को जोड़ें:

  & lt;? Php सार्वजनिक फ़ंक्शन सेट ऑप्शन ($ विकल्प) {$ this- & gt; चालक- & gt; सेट ऑप्शन ($ विकल्प); }   

संपादित करें: विक्रेता \ fr3d \ ldap-bundle \ fr3d \ ldapbundle \ चालक \ zendldap.driver.php

इस फ़ंक्शन को जोड़ें: < / p>

  और   

संपादित करें: विक्रेता \ fr3d \ ldap-bundle \ FR3D \ LdapBundle \ सुरक्षा \ प्रमाणीकरण \ LdapAuthenticationProvider.php

फ़ंक्शन को संशोधित करें पुनर्प्राप्त करेंउपयोगकर्ता (...):

  & lt;? php सुरक्षित फ़ंक्शन पुनर्प्राप्त उपयोगकर्ता ($ उपयोगकर्ता नाम, उपयोगकर्ता नाम पासवर्ड टोकन $ टोकन) {$ user = $ token- & gt; getUser (); अगर (उपयोगकर्ता इंटरफ़ेस का $ उपयोगकर्ता उदाहरण) {वापसी उपयोगकर्ता $; } $ this- & gt; ldapManager- & gt; सेटऑप्ट्स (ऐरे ('उपयोगकर्ता नाम' = & gt; $ टोकन- & gt; getUser (), 'पासवर्ड' = & gt; $ टोकन- & gt; प्राप्त करेंक्रेडेंशियल ())); {$ User = $ this- & gt; प्रयोक्ता प्रदाता- & gt; loadUserByUsername ($ उपयोगकर्ता नाम) का प्रयास करें; $ उपयोगकर्ता वापसी; } पकड़ (यूजरनामनोटफॉउन्डएक्सेप्शन $ नॉट फ़ाउंड) {फेंक $ notFound; } पकड़ (\ अपवाद $ रिपॉझिटरी समस्या) {यदि कर्नेल :: MINOR_VERSION & lt; = 1) {नया प्रमाणीकरण सेवा अभिगम ($ रिपॉजिटरी समस्या- & gt; मिल संदेश (), $ टोकन, (इंट) $ भंडार प्रोबेल- & gt; getCode (), $ repositoryProblem); } और {$ ई = नया प्रमाणीकरण सेवा अभिगम ($ रिपॉजिटरी समस्या- & gt; getMessage (), (int) $ repository समस्या- & gt; getCode (), $ रिपॉज़िटरी समस्या); $ ई & gt; setToken ($ टोकन); $ ई फेंक; }}}   

यह सब !, अब फ़ॉज़र्स लॉगिन क्रेडेंशियल्स का इस्तेमाल सर्वर से बाँटने के लिए किया जाता है।

हो सकता है कि कोई कॉन्फ़िगर पैरामीटर अच्छा होगा, लेकिन क्योंकि अब यह मेरी समस्या का हल करता है।

धन्यवाद क्यूप!

Comments

Popular posts from this blog

php - PDO bindParam() fatal error -

logging - How can I log both the Request.InputStream and Response.OutputStream traffic in my ASP.NET MVC3 Application for specific Actions? -

java - Why my included JSP file won't get processed correctly? -