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ü:
- 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.
- 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 (*Server) RefuseBindFor ¶
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 ¶
RefuseBinds, bind'leri verilen kodla reddettirir (49 = invalidCredentials).