ldappool

package module
v0.0.0-...-cfaec8d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2023 License: MIT Imports: 4 Imported by: 0

README

Example

package main

import (
	"context"
	"log"
	"time"

	"github.com/go-ldap/ldap/v3"
	"github.com/ly020044/go-ldappool"
)

func main() {
	pool, _ := ldappool.New("ldap://ldap.example.com:389")
	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,
	)

	ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
	defer cancel()

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

}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Pool

type Pool struct {
	// contains filtered or unexported fields
}

func New

func New(url string, options ...PoolOption) (*Pool, error)

func (*Pool) Add

func (p *Pool) Add(ctx context.Context, request *ldap.AddRequest) error

func (*Pool) Bind

func (p *Pool) Bind(ctx context.Context, username, password string) error

func (*Pool) Close

func (p *Pool) Close()

func (*Pool) Compare

func (p *Pool) Compare(ctx context.Context, dn, attribute, value string) (bool, error)

func (*Pool) Del

func (p *Pool) Del(ctx context.Context, request *ldap.DelRequest) error

func (*Pool) Modify

func (p *Pool) Modify(ctx context.Context, request *ldap.ModifyRequest) error

func (*Pool) ModifyDN

func (p *Pool) ModifyDN(ctx context.Context, request *ldap.ModifyDNRequest) error

func (*Pool) PasswordModify

func (p *Pool) PasswordModify(ctx context.Context, request *ldap.PasswordModifyRequest) (*ldap.PasswordModifyResult, error)

func (*Pool) Search

func (p *Pool) Search(ctx context.Context, request *ldap.SearchRequest) (*ldap.SearchResult, error)

func (*Pool) SearchWithPaging

func (p *Pool) SearchWithPaging(ctx context.Context, searchRequest *ldap.SearchRequest, pagingSize uint32) (*ldap.SearchResult, error)

func (*Pool) SetTimeout

func (p *Pool) SetTimeout(ctx context.Context, duration time.Duration) error

func (*Pool) SimpleBind

func (p *Pool) SimpleBind(ctx context.Context, request *ldap.SimpleBindRequest) (*ldap.SimpleBindResult, error)

func (*Pool) Start

func (p *Pool) Start(ctx context.Context) error

func (*Pool) StartTLS

func (p *Pool) StartTLS(ctx context.Context, config *tls.Config) error

func (*Pool) TLSConnectionState

func (p *Pool) TLSConnectionState(ctx context.Context) (tc tls.ConnectionState, v bool)

func (*Pool) UnauthenticatedBind

func (p *Pool) UnauthenticatedBind(ctx context.Context, username string) error

type PoolOption

type PoolOption func(p *Pool)

func WithBindCredentials

func WithBindCredentials(dn, password string) PoolOption

func WithMaxConnections

func WithMaxConnections(max int) PoolOption

func WithTLSConfig

func WithTLSConfig(tc *tls.Config) PoolOption

func WithTimeout

func WithTimeout(timeout time.Duration) PoolOption

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL