ldaptest

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package ldaptest, testler için küçük bir LDAP sunucusu sağlar.

⚠️ NEDEN VAR — VE NİYE GERÇEK OpenLDAP YETMİYOR:

Entegrasyon testleri gerçek OpenLDAP'a karşı koşuyor ve sıradan yolları iyi kapsıyor. Ama postern'in en riskli iki LDAP davranışını OpenLDAP ÜRETEMİYOR, çünkü ikisi de Active Directory'ye özgü:

  1. ARALIKLI GETİRME (ranged retrieval). AD, ~1500 üyeden büyük bir grupta `member` yerine `member;range=0-1499` döner ve DÜZ member niteliğini HİÇ göndermez. Bunu bilmeyen bir istemci, 5000 kişilik bir grubu BOŞ görür.
  2. YÖNLENDİRME (referral). Yanlış base DN'e sorulduğunda AD, cevap yerine "şuraya sor" döner. Bunu boş sonuçla karıştıran bir istemci, "kullanıcı yok" der.

İkisi de sessiz ve yanlış bir cevap üretiyor — ve bu kod tabanının üç değerli varlık modeli (bkz. presence.go) tam olarak bunun için var. Test edilemeyen bir "çözülemedi" yolu, hiç yazılmamış gibidir.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Entry

type Entry struct {
	DN string
	// Attrs, nitelik adı → değerler. Ad "member;range=0-1499" gibi
	// SEÇENEKLİ de olabilir — bu paketin var olma sebebi zaten o.
	Attrs map[string][]string
}

Entry, döndürülecek bir dizin kaydı.

type Response

type Response struct {
	Entries   []Entry
	Referrals []string
	// ResultCode 0 dışında ise arama hatayla biter.
	ResultCode uint8
	Diagnostic string
}

* Response, bir aramaya verilecek cevap. * * Referrals dolu ve Entries boşsa, sunucu AD'nin yaptığını yapıyor: * cevap yerine yönlendirme. Bu ikisini AYIRT edebilmek testin konusu.

type Server

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

Server, tek bağlantılı basit bir LDAP dinleyicisi.

func New

func New(handler func(baseDN, filter string, attrs []string) Response) (*Server, error)

New, dinlemeye başlar ve adresi döner.

func (*Server) Binds

func (s *Server) Binds() []string

Binds, şimdiye kadar gelen bind DN'leri.

func (*Server) Close

func (s *Server) Close() error

Close, dinleyiciyi kapatır.

func (*Server) RefuseBindFor

func (s *Server) RefuseBindFor(dn string, code uint8)

RefuseBindFor, YALNIZCA verilen DN'in bind'ini reddeder; başka DN'ler geçer. Gerçek bir "yanlış parola" akışını taklit etmek için: okuyucu bind'i başarılı, kullanıcı bind'i başarısız.

func (*Server) RefuseBinds

func (s *Server) RefuseBinds(code uint8)

RefuseBinds, bind'leri verilen kodla reddettirir (49 = invalidCredentials).

func (*Server) URL

func (s *Server) URL() string

URL, ldap:// adresi.

Jump to

Keyboard shortcuts

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