使用Java配置使用spring security设置嵌入式LDAP服务器

时间:2017-02-24 19:14:36

标签: spring spring-security

我得到Spring安全性来使用在我的本地机器上运行的LDAP服务器,然后,我继续完成本教程https://spring.io/guides/gs/authenticating-ldap/(不是一步一步,因为我没有使用Spring启动)

目标是使用"嵌入式"运行Spring安全性。 LDAP服务器,但我无法设置。

总结

  

本地运行LDAP(让它工作)与嵌入式LDAP(有问题)

要配置AuthenticationManagerBuilder,我做了

auth.ldapAuthentication()
            .contextSource()
            .root("dc=oreilly,dc=com") // I didn't set url() here, so embedded server can be used
            .ldif("classpath:spring-security.ldif")
            .managerDn("uid=admin,ou=system")
            .managerPassword("secret")
            .and()
            .userSearchFilter("uid={0}");

在我的pom.xml中,我包含了以下库

        <dependency>
            <groupId>com.unboundid</groupId>
            <artifactId>unboundid-ldapsdk</artifactId>
        </dependency> <!-- This is the ldap server-->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-ldap</artifactId>
        </dependency>

我不会在这里包含其他代码,因为我让他们使用本地LDAP。

当我跑步时,我收到以下错误:

  

java.lang.NoClassDefFoundError:   组织/阿帕奇/目录/服务器/核心/分区/隔断

我想我可能会错过包含一些库,但不确定是哪个..

1 个答案:

答案 0 :(得分:0)

尝试不同的设置后,这对我有用:

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

    <dependency>
        <groupId>org.apache.directory.shared</groupId>
        <artifactId>shared-ldap</artifactId>
        <version>0.9.15</version>
    </dependency>