Documentation
¶
Index ¶
- func Dial(opts *DialOptions) (conn net.Conn, err error)
- func ListSupportedAuthTypes(quote bool) []string
- type AuthType
- type BindParameters
- func (p *BindParameters) FromKeyring() error
- func (p *BindParameters) SetDefaults()
- func (p *BindParameters) SetDomain(domain string) *BindParameters
- func (p *BindParameters) SetPassword(password string) *BindParameters
- func (p *BindParameters) SetType(authType AuthType) *BindParameters
- func (p *BindParameters) SetUser(user string) *BindParameters
- func (p BindParameters) ToKeyring() error
- func (p *BindParameters) Validate() error
- type Connection
- type DialOptions
- func (o *DialOptions) SetDefaults()
- func (o *DialOptions) SetMaxRetries(retries uint) *DialOptions
- func (o *DialOptions) SetSizeLimit(limit int64) *DialOptions
- func (o *DialOptions) SetTLSConfig(conf *tls.Config) *DialOptions
- func (o *DialOptions) SetTimeLimit(limit time.Duration) *DialOptions
- func (o *DialOptions) SetURL(addr string) *DialOptions
- func (o *DialOptions) Validate() error
- type Port
- type Scheme
- type URL
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ListSupportedAuthTypes ¶
Types ¶
type AuthType ¶
type AuthType int
AuthType is an LDAP authentication type (RFC 4511)
type BindParameters ¶
type BindParameters struct {
// AuthType is the authentication type
AuthType AuthType `validate:"required,is_valid"` // default: SIMPLE
// Domain is user's domain (required for NTLM authentication)
Domain string `validate:"required_if=AuthType NTLM"`
// User's password
Password string `validate:"required_unless=AuthType UNAUTHENTICATED"`
// Username
User string `validate:"required_unless=AuthType UNAUTHENTICATED"`
}
BindParameters are parameters for binding to the server
func (*BindParameters) FromKeyring ¶ added in v1.2.3
func (p *BindParameters) FromKeyring() error
FromKeyring loads credentials from keyring
func (*BindParameters) SetDefaults ¶
func (p *BindParameters) SetDefaults()
SetDefaults sets default values
func (*BindParameters) SetDomain ¶
func (p *BindParameters) SetDomain(domain string) *BindParameters
Set domain (required for NTLM-based authentication)
func (*BindParameters) SetPassword ¶
func (p *BindParameters) SetPassword(password string) *BindParameters
Set password
func (*BindParameters) SetType ¶
func (p *BindParameters) SetType(authType AuthType) *BindParameters
Set authentication type
func (*BindParameters) SetUser ¶
func (p *BindParameters) SetUser(user string) *BindParameters
Set username
func (BindParameters) ToKeyring ¶ added in v1.2.3
func (p BindParameters) ToKeyring() error
ToKeyring saves credentials to keyring
func (*BindParameters) Validate ¶
func (p *BindParameters) Validate() error
Validate parameters to bind to the server
type Connection ¶
type Connection struct {
// LDAP connection
*ldap.Conn
// Dial options
*DialOptions
// contains filtered or unexported fields
}
Connection object
func Bind ¶
func Bind(parameters *BindParameters, options *DialOptions) (*Connection, error)
Establish connection with the server
func (Connection) Close ¶
func (c Connection) Close() error
Close closes the underlying TCP connection
func (Connection) RemoteHost ¶
func (c Connection) RemoteHost() string
RemoteHost returns the remote host of the domain controller
type DialOptions ¶
type DialOptions struct {
// Number of max retries if failing
MaxRetries uint `validate:"required" default:"3"`
// Limits number of objects returned by an LDAP query
SizeLimit int64
// Timeout for connection handshake and LDAP queries
TimeLimit time.Duration `validate:"required" default:"10s"`
// Custom TLS config
TLSConfig *tls.Config
// Server URL
URL *URL `validate:"required,is_valid"` // default: ldap://localhost:389
}
Options for dialer
func (*DialOptions) SetMaxRetries ¶
func (o *DialOptions) SetMaxRetries(retries uint) *DialOptions
Set max retries
func (*DialOptions) SetSizeLimit ¶
func (o *DialOptions) SetSizeLimit(limit int64) *DialOptions
Set size limit
func (*DialOptions) SetTLSConfig ¶
func (o *DialOptions) SetTLSConfig(conf *tls.Config) *DialOptions
Set custom TLS config
func (*DialOptions) SetTimeLimit ¶
func (o *DialOptions) SetTimeLimit(limit time.Duration) *DialOptions
Set time limit
type URL ¶
type URL struct {
// Scheme
Scheme Scheme `validate:"required,is_valid"`
// Server's domain name
Host string `validate:"required"`
// Server's port
Port Port `validate:"required,gt=0"`
}
Server's URL
func URLFromString ¶
Parse URL from string matching <scheme>://<hostname>:<port>