开发者

Trying to use Spring LDAP for coding

开发者 https://www.devze.com 2023-02-26 07:06 出处:网络
I am trying to use Spring LDAP for coding <ldap-server ldif=\"classpath:my-ldap-clone.ldif\" /> 开发者_运维问答

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?


Using maven :

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


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)


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号