LDAP 的 Spring Security Java 配置

Posted

技术标签:

【中文标题】LDAP 的 Spring Security Java 配置【英文标题】:Spring Security Java Config for LDAP 【发布时间】:2014-12-30 11:42:13 【问题描述】:

如何设置 Spring Security LDAP 配置的 URL? 有很多基于 xml 的示例,但我找不到一个 java config 示例来复制下面的 xml 行。我假设它是在下面的 java 代码块中配置的,该代码块取自使用嵌入式 ldap 的 spring 指南,但是我们如何设置外部 url?

<ldap-server id="ldapServer" url="ldap://example.com:PORT/dc=example,dc=com" />
@Override
public void init(AuthenticationManagerBuilder auth) throws Exception 
    auth.ldapAuthentication()
            .userDnPatterns("uid=0,ou=people")
            .groupSearchBase("ou=groups")
            .contextSource()
                .ldif("classpath:test-server.ldif");

【问题讨论】:

【参考方案1】:

您只需使用LdapAuthenticationProviderConfigurer.ContextSourceBuilderurl() 方法

所以你可以简单地扩展你的代码如下:

@Override
public void init(AuthenticationManagerBuilder auth) throws Exception 
    auth.ldapAuthentication()
            .userDnPatterns("uid=0,ou=people")
            .groupSearchBase("ou=groups")
            .contextSource()
                .ldif("classpath:test-server.ldif")
                .url("ldap://example.com:PORT/dc=example,dc=com");

【讨论】:

给出使用 .ldif() 的例子对任何人来说都是毫无用处的。每个教程都依赖它,它不能解决任何人的问题。

以上是关于LDAP 的 Spring Security Java 配置的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 spring-security-core-ldap 插件在 grails 中实现 LDAP 身份验证?

Grails,Spring Security LDAP 插件

使用 Spring Security 的 ldap 身份验证

如何使用带有 LDAP 的 Spring Security 获取用户信息

使用 Spring security 2.0.3 的 LDAP 身份验证

使用 Spring Security 3 进行 LDAP 身份验证