मैं सफलतापूर्वक प्रमाणित करने के लिए LDAP के माध्यम से सक्रिय निर्देशिका से कनेक्ट हो जाते हैं, और मेरे ldap.xml में निम्नलिखित के साथ मैं बुलाया गया है मेरे कस्टम अधिकारियों populator:मैं स्प्रिंग सुरक्षा और ActiveDirectoryLdapAuthenticationProvider के साथ एक कस्टम प्राधिकरण पॉप्युलेटर का उपयोग कैसे करूं?
<bean id="ldapAuthenticationProvider"
class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
<constructor-arg ref="ldapBindAuthenticator"/>
<constructor-arg ref="ldapAuthoritiesPopulator"/>
</bean>
<bean id="ldapBindAuthenticator"
class="org.springframework.security.ldap.authentication.BindAuthenticator">
<constructor-arg ref="ldapServer"/>
<property name="userSearch" ref="ldapSearch"/>
</bean>
<bean id="ldapSearch"
class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
<constructor-arg value="CN=Users"/>
<constructor-arg value="(sAMAccountName={0})"/>
<constructor-arg ref="ldapServer"/>
</bean>
<bean id="ldapAuthoritiesPopulator"
class="my.project.package.ActiveDirectoryLdapAuthoritiesPopulator"/>
<bean id="ldapServer"
class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
<constructor-arg value="ldap://192.168.0.2/dc=test,dc=server"/>
<property name="userDn" value="[email protected]"/>
<property name="password" value="ldap"/>
<property name="baseEnvironmentProperties">
<map>
<entry key="java.naming.referral">
<value>follow</value>
</entry>
</map>
</property>
</bean>
यह ठीक काम करता है, और मैं उपयोगकर्ता के पता लगाने कर सकते हैं प्राधिकरण उसके समूह सदस्यता के आधार पर है, लेकिन मैं नहीं बल्कि निर्मित सक्रिय निर्देशिका LDAP प्रमाणीकरण प्रदाता के माध्यम से ऐसा होगा: तो
<bean id="ldapAuthenticationProvider"
class="org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider">
<constructor-arg value="test.server"/>
<constructor-arg value="ldap://192.168.0.2:389"/>
<property name="convertSubErrorCodesToExceptions" value="true"/>
</bean>
ऊपर के साथ समस्या यह है कि मेरे कस्टम अधिकारियों populator (जाहिर है) है नहीं कहा जाता है, जबकि मैं अपने उपयोगकर्ताओं को प्रमाणित कर सकता हूं (जो ऊपर के साथ काम करता है), मैं समूह के बिना छोड़ दिया गया है (जिसे मुझे प्राधिकरण निर्धारित करने की आवश्यकता है)।
मुझे लगता है कि यह एक साधारण सवाल है, लेकिन मेरे जीवन के लिए मुझे यहां या कहीं और जवाब नहीं मिल रहा है। क्या मुझे ActiveDirectoryLdapAuthenticationProvider क्लास का विस्तार करना है, और वहां से मेरे अधिकारियों के पॉप्युलेटर को कॉल करना है?
(इस साइट ने मुझे कई वर्षों तक चलने वाली सभी मदद के लिए धन्यवाद; इस साइट की प्रभावशीलता इस तथ्य से गिनती जा सकती है कि मैंने हाल ही में एक खाता बनाने के लिए परेशान किया है, और यह मेरा पहला सवाल है। आपकी मदद के लिए अग्रिम धन्यवाद।)