我需要使用嵌入式服务器
<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。
答案 0 :(得分:2)
ldap-server
元素会创建ContextSource
,因此您无需定义一个<security:ldap-server id="embeddedServer" ... />
<bean id="authenticator" class="org.springframework.security.ldap.authentication.BindAuthenticator">
<constructor-arg ref="embeddedServer"/>
...
</bean>
元素。它supports an id attribute,您可以使用它来创建对bean的引用。
port
通常你不需要URL。它还有一个ldap://localhost:33389/dc=example,dc=com
元素(默认为33389),您可以设置它。除非您设置了不同的端口,否则该网址将为{{1}}。