Mam pomyślnie podłączone do usługi Active Directory przez LDAP do uwierzytelniania, a także z następujących w moim ldap.xml Zadzwoniłem moje organy niestandardowe populator:Jak użyć populatora uprawnień niestandardowych przy użyciu Spring Security i 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>
Działa to dobrze, i mogę ustalić użytkownika autoryzacja w oparciu o jej przynależności do grupy, ale wolałbym to zrobić za pomocą wbudowanego dostawcy uwierzytelniania LDAP Active Directory:
<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>
problem z powyższego jest to, że moje organy niestandardowe populator jest (oczywiście) nie nazywa, tak podczas gdy mogę uwierzytelniać moich użytkowników (co działa z powyższym), ja pozostało bez grup (które muszę określić autoryzację).
Mam wrażenie, że to proste pytanie, ale nie mogę znaleźć odpowiedzi tutaj ani nigdzie indziej. Czy muszę przedłużyć klasę ActiveDirectoryLdapAuthenticationProvider i wywołać populator mojego organu?
(Dziękuję za całą pomoc, którą ta strona dała mi od kilku lat z rzędu, skuteczność tej strony można ocenić dzięki temu, że dopiero niedawno podjąłem próbę utworzenia konta i jest to moje pierwsze pytanie. Z góry dziękuję za pomoc.)