【问题标题】:Cannot use Spring LDAP with Spring Security无法将 Spring LDAP 与 Spring Security 一起使用
【发布时间】:2011-01-23 05:27:25
【问题描述】:

我想根据我们的 AD 对用户进行身份验证,所以我知道我需要 spring security 和 spring ldap。

这是我的 POM 中的内容:

<groupId>org.springframework.security</groupId>
<artifactId>org.springframework.security.core</artifactId>
<version>3.0.0.RELEASE</version>
</dependency>
...
<dependency>
    <groupId>org.springframework.ldap</groupId>
    <artifactId>spring-ldap</artifactId>
    <version>1.3.0.RELEASE</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

以下是我的安全上下文中的相应条目:

<ldap-authentication-provider user-dn-pattern="CN=0},OU=CAN,OU=NOT,OU=TELL,OU=YOU"/>
    ..  
<!-- LDAP Security Configuration -->
<ldap-server url="ldap://10.9.1.1:389/DC=TELL,DC=YOU"/>

但是,当我使用以下方式运行我的应用程序时:

mvn jetty:run

我收到以下错误:

If you are using LDAP with Spring Security, please ensure that you include the spring-ldap jar file in your application; nested exception is java.lang.ClassNotFoundException: org.springframework.ldap.core.support.BaseLdapPathContextSource:
java.lang.ClassNotFoundException: org.springframework.ldap.core.support.BaseLdapPathContextSource
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
    at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255)
    at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274)
    at org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:375)
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:258)
    at org.springframework.security.config.ldap.ContextSourceSettingPostProcessor.postProcessBeanFactory(ContextSourceSettingPostProcessor.java:33)

【问题讨论】:

    标签: java spring maven-2 spring-security spring-ldap


    【解决方案1】:

    pom 类型的依赖项不会提供任何类。请改用此依赖项:

    <dependency>
      <groupId>org.springframework.ldap</groupId>
      <artifactId>spring-ldap-core</artifactId>
      <version>1.3.0.RELEASE</version>
    </dependency>
    

    此工件包含当前缺失的 o.s.l.c.s.BaseLdapPathContextSource 类。

    【讨论】:

      【解决方案2】:

      &lt;type&gt;pom&lt;/type&gt; 在我看来很可疑。尝试将类型更改为jar

      【讨论】:

        【解决方案3】:

        只是为了完整性。以下是适用于我的依赖项列表:

            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>org.springframework.security.core</artifactId>
                <version>3.0.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>org.springframework.security.config</artifactId>
                <version>3.0.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>org.springframework.security.web</artifactId>
                <version>3.0.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>org.springframework.security.taglibs</artifactId>
                <version>3.0.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.ldap</groupId>
                <artifactId>spring-ldap-core</artifactId>
                <version>1.3.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.ldap</groupId>
                <artifactId>spring-ldap-core-tiger</artifactId>
                <version>1.3.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-ldap</artifactId>
                <version>3.0.1.RELEASE</version>
            </dependency>
        

        【讨论】:

          猜你喜欢
          • 2016-09-04
          • 1970-01-01
          • 2011-01-15
          • 2021-09-03
          • 2014-12-20
          • 2011-04-16
          • 2020-10-29
          • 2018-04-15
          • 2021-07-19
          相关资源
          最近更新 更多