Как настроить ldap с весны 4.0 - PullRequest
0 голосов
/ 18 октября 2019

У меня проблема с аутентификацией с помощью openldap, я не знаю, как настроить Spring Security, ldap с версией Spring 4.0.0. Пожалуйста, предоставьте образец ссылки.

<beans:bean id="contextSource"
    class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
    <beans:constructor-arg
        value="ldap://localhost:389/dc=test,dc=com" />
</beans:bean>
<security:ldap-server id="contextSource"
    url="ldap://localhost:389/dc=test,dc=com" />


<beans:bean id="authMgr"
    class="org.springframework.security.authentication.ProviderManager">
    <beans:constructor-arg>
        <beans:list>
            <beans:bean id="ldapAuthProvider"
                class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
                <beans:constructor-arg>
                    <beans:bean
                        class="org.springframework.security.ldap.authentication.BindAuthenticator">
                        <beans:constructor-arg ref="contextSource" />
                        <beans:property name="userDnPatterns">
                            <beans:list>
                                <beans:value>uid={0},ou=users</beans:value>
                            </beans:list>
                        </beans:property>
                    </beans:bean>
                </beans:constructor-arg>
            </beans:bean>
        </beans:list>
    </beans:constructor-arg>
</beans:bean>
<security:authentication-manager>
    <security:ldap-authentication-provider
        server-ref="contextSource" user-search-base="ou=users"
        user-search-filter="(uid={0})" group-search-filter="ou=groups">
        <security:password-compare hash="{sha}"
            password-attribute="userPassword" />
    </security:ldap-authentication-provider>
</security:authentication-manager>

1 Ответ

0 голосов
/ 19 октября 2019

Ссылка на Spring Security 4.0 LDAP

Передовой практикой LDAP будет поиск DN записи, следовательно, настройте

    <bean id="userSearch" class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
      <constructor-arg index="0" value=""/>
      <constructor-arg index="1" value="(uid={0})"/>
      <constructor-arg index="2" ref="contextSource" />
    </bean>

Также обычно статическая LDAPатрибут именования записей группы - cn, поэтому настройте

<bean class="org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator">
    <constructor-arg ref="contextSource"/>
    <constructor-arg value="ou=groups"/>
    <property name="groupRoleAttribute" value="cn"/>
</bean>

вместо примера, показанного в руководстве

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...