Arranges to start the server before running ldap queries removing flakiness
Uses contexts to limit individual command execution time to 100ms
Ensure temporary files use the managed t.TempDir() directory
Set log output to the test output so that go test has a clean output
* Harden LDAP control decoding against malformed BER input
Change DecodeControl to return (Control, error) and validate control structure and value types instead of relying on unchecked access.
Handle decode failures on both server and client paths, returning protocol errors for bad request controls and surfacing response decode errors.
* fix: top-level recover() and fix missing TLSConfig check
* chore: verify fix
* switch nmcclain/asn1-ber to go-asn1-ber/and1-ber.
This newer package has ben updated with tests, and looks to actually be supported.
It is also is a forked version of nmcclain/asn1-ber, so supports the same API.
* no need to print errors if client disconnects early and unexpectedly
* added in Close method on server to avoid a race condition
* test ssl certs are untrusted, ldapsearch needs to be told to allow untrusted certs
* Extra time.Wait causes the test to fail
* removed singaling with a custom quit chanel
* feat: support StartTLS in server
* lint: fmt and imports
* feat: rename library to be used by glauth
* chore: renamed packages
---------
Co-authored-by: Daniel Barney <daniel@thoughtplot.io>
Co-authored-by: Mark Rushakoff <mark@influxdata.com>
Co-authored-by: shipperizer <alexcabb@gmail.com>
Thank you @wxiaoguang !
* strings in LDAP are case-insensitive
* optmize routeFunc (faster, case-insensitive)
* small optimiztion to routeFunc
* request the directory server to return operational attributes by adding + (the plus sign) in your ldapsearch command.
* request the directory server to return operational attributes by adding + (the plus sign) in your ldapsearch command.
* request the directory server to return operational attributes by adding + (the plus sign) in your ldapsearch command.
* remove operational attributes
A single channel is now used to signal that the connection was closed.
There is also no need to set the net.Conn field to nil as this was causing a nil pointer dereference in the reader loop.