Categorygithub.com/iredmail/ldappool
repositorypackage
0.0.0-20241106080618-49c2edc1411d
Repository: https://github.com/iredmail/ldappool.git
Documentation: pkg.go.dev

# README

How to use it ?

package main

import(
	"fmt"
	"log"
	
	"github.com/go-ldap/ldap/v3"
	"github.com/iredmail/ldappool"
)

func main() {
	opts := []ldappool.Option{
		ldappool.WithMaxConnections(10),
		ldappool.WithBindCredentials("dn", "password"),
    }
	
	pool, err := ldappool.New("ldap://ldap.example.com:389", opts...)
	if err != nil {
		log.Fatal(err)
    }
	
	defer pool.Close()

	searchRequest := ldap.NewSearchRequest(
		"dc=example,dc=com", // The base dn to search
		ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
		"(&(objectClass=organizationalPerson))", // The filter to apply
		[]string{"dn", "cn"},                    // A list attributes to retrieve
		nil,
	)

	sr, err := pool.Search(searchRequest)
	if err != nil {
		log.Fatal(err)
	}

	for _, entry := range sr.Entries {
		fmt.Printf("%s: %v\n", entry.DN, entry.GetAttributeValue("cn"))
	}
}