Spring security jasper server 5.6 active directory身份验证不工作

Spring security jasper server 5.6 active directory身份验证不工作,spring-security,active-directory,ldap,jasperserver,Spring Security,Active Directory,Ldap,Jasperserver,我正在将jasper server 5.6验证为ldap active directory。ldapAuthenticationProvider bean配置正常。userDnPatterns正在工作。但服务器无法在usersearch bean中搜索。这是我的usersearch配置。我是否正确地将值放入构造函数arg <bean id="userSearch" class="org.springframework.security.ldap.search.FilterBa

我正在将jasper server 5.6验证为ldap active directory。ldapAuthenticationProvider bean配置正常。userDnPatterns正在工作。但服务器无法在usersearch bean中搜索。这是我的usersearch配置。我是否正确地将值放入构造函数arg

 <bean id="userSearch"
      class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
  <constructor-arg index="0"><value>(sAMAccountName={0})</value></constructor-arg>
  <constructor-arg index="1"><value>sAMAccountName={0},ou=IT Service Accounts</value></constructor-arg>
  <constructor-arg index="2"><ref local="ldapContextSource"/></constructor-arg>
  <property name="searchSubtree"><value>true</value></property>
</bean>

谢谢

不应使用sAMAccountName作为第一个参数index=0,因为该参数是目录搜索基础

如果要使用默认搜索基数,请将该值留空

现在,第二个参数告诉jasper或任何使用FilterBasedApUserSearch方法的应用程序如何搜索用户,以及应用程序最终应该使用哪个用户绑定到目录

您在index=1上指定的fiter仅在AD具有以下形式的用户DN时有效: DN:sAMAccountName=用户,ou=IT服务帐户

现在,AD的默认用户DN更像:CN=Full Name,CN=Users,…,因此,在您的示例中,您应该在FilterBasedAldapUserSearch方法中仅使用sAMAccountName={0},然后修改LdapAuthenticationProvider方法以指定userDnPatterns,如下所示:

CN={0},ou=IT服务帐户


当然,您应该更紧密地将其与您的设置相匹配,这只是一个示例。

您好,谢谢您的AMS服务。但是仍然存在相同的问题。没有错误日志。但是无法使用AD访问。