example code active java spring spring-security spring-ldap apacheds

java - code - spring security active directory authentication



Tratando de usar Spring LDAP para codificar (3)

Si está utilizando Maven, estos en realidad provienen de una dependencia opcional de spring-security-ldap .

Usar apacheds-all es una mala idea porque incorpora muchas dependencias bastante comunes, como slf4j y dom4j. Fácilmente entrarías en problemas con el cargador de clases.

En su lugar, debe buscar dentro de la pom de la versión spring-security-ldap esté utilizando, para las dependencias opcionales de apacheds , y copiarlas en su pom sin los elementos <scope> y <optional> (desafortunadamente no hay mejor manera) para manejar dependencias opcionales con Maven).

Por ejemplo, con spring-security-ldap 4.2.2 , daría:

<dependency> <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-core</artifactId> <version>1.5.5</version> </dependency> <dependency> <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-core-entry</artifactId> <version>1.5.5</version> </dependency> <dependency> <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-protocol-ldap</artifactId> <version>1.5.5</version> </dependency> <dependency> <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-protocol-shared</artifactId> <version>1.5.5</version> </dependency> <dependency> <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-server-jndi</artifactId> <version>1.5.5</version> </dependency>

(parece que no ha cambiado desde al menos 3.2)

Estoy tratando de usar Spring LDAP para la codificación

<ldap-server ldif="classpath:my-ldap-clone.ldif" />

pero obtengo este error

NoClassDefFoundError: org/apache/directory/server/core/DirectoryService

¿Qué estoy haciendo mal?


Descargue ApcheDS desde el siguiente enlace http://directory.apache.org/ o obtenga el archivo completo desde aquí. He trabajado con Spring Security 3.0.5 con LDAP (Spring LDAP 1.3). Esa vez no cumplí con el requisito de ApacheDS. Compruebe su versión de Spring Secuirty que puede tener dependencia con ApacheDS.


Usando maven:

<dependency> <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-all</artifactId> <version>1.5.7</version> </dependency>