Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 如何使用Spring4.0配置ldap_Spring Mvc_Spring Security_Spring Security Ldap - Fatal编程技术网

Spring mvc 如何使用Spring4.0配置ldap

Spring mvc 如何使用Spring4.0配置ldap,spring-mvc,spring-security,spring-security-ldap,Spring Mvc,Spring Security,Spring Security Ldap,我在使用openldap进行身份验证时遇到了问题,我不知道如何配置spring安全性,ldap使用spring 4.0.0版本。请提供样品参考 <beans:bean id="contextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource"> <beans:constructor-arg value="ldap://localho

我在使用openldap进行身份验证时遇到了问题,我不知道如何配置spring安全性,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>

uid={0},ou=用户

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

与指南中显示的示例不同

我编辑了我的问题并粘贴了xml配置,如果有不正确的地方,请提出建议。尽管我输入了正确的DN,但我得到的错误是“LDAP:错误代码34-无效DN”。尽管我输入了正确的密码,但我得到了错误的凭据异常。在ldap中,我已将密码加密配置为sha,在SpringXML中也是如此。各位朋友,请帮助解决这个问题!LDAP最佳实践是让LDAP服务器在客户端发送LDAP绑定请求时进行密码比较。