SJS
SJS

Reputation: 5667

Trying to use Spring LDAP for coding

I am trying to use Spring LDAP for coding

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

but I get this error

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

What am I doing wrong?

Upvotes: 7

Views: 7350

Answers (3)

Didier L
Didier L

Reputation: 20579

If you are using Maven, these actually come from an optional dependency of spring-security-ldap.

Using apacheds-all is a bad idea because it embeds a lot of rather common dependencies, like slf4j and dom4j. You would easily get into classloader issues with it.

Instead, you should look inside the pom of the spring-security-ldap version your are using, for the apacheds optional dependencies, and copy them over to your pom without the <scope> and <optional> elements (unfortunately there is no better way to handle optional dependencies with Maven).

For instance, with spring-security-ldap 4.2.2, it would give:

<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>

(it looks like it hasn't changed since at least 3.2)

Upvotes: 5

foa
foa

Reputation: 319

Using maven :

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

Upvotes: 13

Senthil
Senthil

Reputation: 5804

Download ApcheDS from below link http://directory.apache.org/ or get complete jar from here I have used to work with Spring Security 3.0.5 with LDAP (Spring LDAP 1.3). That time i didn't met requirement of ApacheDS. Check your version of Spring Secuirty which may have dependency with ApacheDS.

Upvotes: 2

Related Questions