简体   繁体   English

如何转换grails 2 LDAP Active Directory值以使用Spring Boot

[英]How to translate grails 2 LDAP Active Directory values to work with Spring Boot

I'm having problems connecting to LDAP Active Directory using Spring Boot. 我在使用Spring Boot连接到LDAP Active Directory时遇到问题。 I've been using values found in our Grails 2 app but must be missing something. 我一直在使用在Grails 2应用程序中找到的值,但一定缺少一些东西。

Grails 2 Values example Grails 2值示例

grails.plugin.springsecurity.ldap.authorities.retrieveDatabaseRoles = true
grails.plugin.springsecurity.ldap.context.managerDn = 'manager@domain.local'
grails.plugin.springsecurity.ldap.context.managerPassword = 'password'
grails.plugin.springsecurity.ldap.context.server = 'ldap://domain.local:389'
grails.plugin.springsecurity.ldap.authorities.ignorePartialResultException = true 
grails.plugin.springsecurity.ldap.search.base = 'ou=users,dc=domain,dc=local'
grails.plugin.springsecurity.ldap.search.filter = "sAMAccountName={0}"
grails.plugin.springsecurity.ldap.search.searchSubtree = true
grails.plugin.springsecurity.ldap.auth.hideUserNotFoundExceptions = false
grails.plugin.springsecurity.ldap.search.attributesToReturn = ['mail', 'displayName']
grails.plugin.springsecurity.providerNames = ['customAuthenticationProvider','ldapAuthProvider']

Here is one of the many variations that I've tried in Spring Boot. 这是我在Spring Boot中尝试的众多变体之一。 I'm pretty positive it's not searching the manager / password correctly. 我很肯定它没有正确搜索管理员/密码。

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .anyRequest().fullyAuthenticated()
            .and()
            .formLogin();
    }

    @Override
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.ldapAuthentication()
            .contextSource().url("ldap://domain.local:389")
            .managerDn("uid=manager@domain.local,ou=users")
            .managerPassword("password")
            .and()
            .userSearchBase("ou=users,dc=domain,dc=local")
            .userDnPatterns("sAMAccountName={0}");

    }
}

build.gradle ldap dependencies build.gradle ldap依赖项

compile("org.springframework.ldap:spring-ldap-core")
compile("org.springframework.security:spring-security-ldap")
compile("com.unboundid:unboundid-ldapsdk")

Got it working by setting it up like this: 通过如下设置使其正常工作:

        auth.ldapAuthentication()
                .contextSource().url("ldap://domain.local:389/ou=users,dc=domain,dc=local")
                .managerDn("manager@domain.local").managerPassword("password")
                .and()
                .userSearchFilter("sAMAccountName={0}");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM