使用goLang的LDAP身份验证

使用goLang的LDAP身份验证,go,ldap,openldap,ldap-query,Go,Ldap,Openldap,Ldap Query,我正在尝试使用goLang对LDAP服务器进行身份验证,并尝试搜索用户。 我不熟悉goLang和LDAP,所以我提取了GitHub代码。 在尝试使用下面的代码时,我在身份验证中遇到错误 func ExampleLDAPClient_Authenticate() { client := &ldap.LDAPClient{ Base: "cn=admin,dc=testing,dc=io", Host: "52.51.2

我正在尝试使用goLang对LDAP服务器进行身份验证,并尝试搜索用户。 我不熟悉goLang和LDAP,所以我提取了GitHub代码。 在尝试使用下面的代码时,我在身份验证中遇到错误

func ExampleLDAPClient_Authenticate() {
    client := &ldap.LDAPClient{
        Base:         "cn=admin,dc=testing,dc=io",
        Host:         "52.51.245.219",
        Port:         389,
        UseSSL:       false,
        BindDN:       "cn=admin,dc=testing,dc=io",
        BindPassword: "test123",
        UserFilter:   "(uid='*api*')",
        // GroupFilter:  "(memberUid=%s)",
        Attributes: []string{"givenName", "sn", "mail", "uid"},
    }
    defer client.Close()
    username := "cn=admin,dc=testing,dc=io"
    password := "test123"
    ok, user, err := client.Authenticate(username, password)
    if err != nil {
        log.Fatalf("Error authenticating user %s: %+v", "*cn=admin,dc=testing,dc=io*", err)
    }
    if !ok {
        log.Fatalf("Authenticating failed for user %s", "*cn=admin,dc=testing,dc=io*")
    }
    log.Printf("User: %+v", user)
}
注意:LDAP服务器使用http连接

谁能帮我修一下这个…

这是什么库

我使用过,在我的例子中,它运行良好(至少与OpenLDAP服务器一起)。它可能值得一试——它似乎是最常用的图书馆

go run example.go
    2016/10/06 23:52:25 Error authenticating user *cn=admin,dc=testing,dc=io*: LDAP Result Code 201 "": ldap: finished compiling filter with extra at end: %!(EXTRA string=bmui)