1

我需要使用嵌入式服务器

<security:authentication-manager>   
    <security:ldap-authentication-provider  
                user-search-filter="(uid={0})" 
                user-search-base="ou=users"
                group-search-filter="(uniqueMember={0})"
                group-search-base="ou=groups"
                group-role-attribute="cn"
                role-prefix="ROLE_">
    </security:ldap-authentication-provider>
</security:authentication-manager>

<security:ldap-server ldif="classpath:mojo_working.ldif" root="dc=example,dc=com"  />

用于自定义填充器。

就像是

<bean id="ldapAuthProvider" class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
    <constructor-arg ref="authenticator"/>
    <constructor-arg ref="populator"/>
</bean> 

<bean id="authenticator" class="org.springframework.security.ldap.authentication.BindAuthenticator">
    <constructor-arg ref="contextSource"/>
    <property name="userDnPatterns">
        <list>
            <value>uid={0},ou=users</value>
        </list>
    </property>
</bean>

在这种情况下,嵌入式 LDAP 服务器的 contextSource 可以是什么。

4

1 回答 1

2

ldap-server元素创建一个ContextSource,因此您无需定义一个。它支持 id 属性,您可以使用它来创建对 bean 的引用。

<security:ldap-server id="embeddedServer" ... />

<bean id="authenticator" class="org.springframework.security.ldap.authentication.BindAuthenticator">
    <constructor-arg ref="embeddedServer"/>
    ...
</bean>

所以通常你不需要 URL。它还有一个port可以设置的元素(默认为 33389)。ldap://localhost:33389/dc=example,dc=com除非您设置不同的端口,否则URL 将是。

于 2013-06-03T13:41:32.970 回答