使用 Spring Security 实现 LDAP 身份验证时出现 Gradle 依赖关系错误
Posted
技术标签:
【中文标题】使用 Spring Security 实现 LDAP 身份验证时出现 Gradle 依赖关系错误【英文标题】:Gradle Dependency error while implementing LDAP Authentication using Spring Security 【发布时间】:2018-11-02 01:51:40 【问题描述】:即使在 build.gradle 中有以下依赖项后,我仍然收到以下两个错误:
compile group: 'org.springframework.ldap', name: 'spring-ldap-core', version: '2.3.1.RELEASE'
compile group: 'org.springframework.security', name: 'spring-security-ldap', version: '4.0.4.RELEASE'
引起:java.lang.ClassNotFoundException: org.springframework.ldap.core.ContextSource 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 26 常见 框架省略
或
引起:java.lang.ClassNotFoundException: org.springframework.security.ldap.search.LdapUserSearch 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 26 常见 框架省略
你能帮我解决这个错误吗,这里的依赖项之间是否存在版本冲突?
【问题讨论】:
【参考方案1】:这确实看起来像是版本冲突。根据MVNRepository,spring-security-ldap 4.0.4.RELEASE
取决于 spring-ldap-core 2.0.2.RELEASE 版本。
我认为您可以安全地删除对 spring-ldap-core
的依赖项并看到它解决了您的问题。
当您使用它时,您也可以考虑升级到更高版本。
【讨论】:
嗨 MuratOzkan,我按照建议删除了“spring-ldap-core”依赖项,但仍然收到错误“由:java.lang.ClassNotFoundException:org.springframework.security.ldap.search 引起。 LdapUserSearch" 你还有哪些依赖? MuratOzkan ,上面提供的依赖是父 build.gradle ,子模块中还有许多其他依赖。我刚刚将上述依赖项添加到子模块 build.gradle 中,它运行良好,谢谢。以上是关于使用 Spring Security 实现 LDAP 身份验证时出现 Gradle 依赖关系错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring WebFlux 中使用 Spring Security 实现身份验证的资源是啥
如何使用 Spring Security 实现登录页面以使其与 Spring Web 流一起使用?
在Spring Boot中使用Spring Security实现权限控制
如何使用 Spring Security 实现具有两级令牌认证的 Spring Boot 微服务?
如何使用 grails 1.3.2 和插件 spring-security-core 1 实现自定义 FilterSecurityInterceptor?