Documentation ¶
Index ¶
- type Config
- type ConnWithReconnect
- func (c *ConnWithReconnect) Add(a *ldap.AddRequest) error
- func (c *ConnWithReconnect) Bind(username, password string) error
- func (c *ConnWithReconnect) Close() (err error)
- func (c *ConnWithReconnect) Compare(dn, attribute, value string) (bool, error)
- func (c *ConnWithReconnect) Del(d *ldap.DelRequest) error
- func (c *ConnWithReconnect) DirSync(searchRequest *ldap.SearchRequest, flags, maxAttrCount int64, cookie []byte) (*ldap.SearchResult, error)
- func (c *ConnWithReconnect) DirSyncAsync(ctx context.Context, searchRequest *ldap.SearchRequest, bufferSize int, ...) ldap.Response
- func (c *ConnWithReconnect) ExternalBind() error
- func (c *ConnWithReconnect) GetLastError() error
- func (c *ConnWithReconnect) IsClosing() bool
- func (c *ConnWithReconnect) Modify(m *ldap.ModifyRequest) error
- func (c *ConnWithReconnect) ModifyDN(m *ldap.ModifyDNRequest) error
- func (c *ConnWithReconnect) ModifyWithResult(m *ldap.ModifyRequest) (*ldap.ModifyResult, error)
- func (c *ConnWithReconnect) NTLMUnauthenticatedBind(domain, username string) error
- func (c *ConnWithReconnect) PasswordModify(*ldap.PasswordModifyRequest) (*ldap.PasswordModifyResult, error)
- func (c *ConnWithReconnect) Search(sr *ldap.SearchRequest) (*ldap.SearchResult, error)
- func (c *ConnWithReconnect) SearchAsync(ctx context.Context, searchRequest *ldap.SearchRequest, bufferSize int) ldap.Response
- func (c *ConnWithReconnect) SearchWithPaging(searchRequest *ldap.SearchRequest, pagingSize uint32) (*ldap.SearchResult, error)
- func (c *ConnWithReconnect) SetLogger(logger *zerolog.Logger)
- func (c *ConnWithReconnect) SetTimeout(time.Duration)
- func (c *ConnWithReconnect) SimpleBind(*ldap.SimpleBindRequest) (*ldap.SimpleBindResult, error)
- func (c *ConnWithReconnect) Start()
- func (c *ConnWithReconnect) StartTLS(*tls.Config) error
- func (c *ConnWithReconnect) Syncrepl(ctx context.Context, searchRequest *ldap.SearchRequest, bufferSize int, ...) ldap.Response
- func (c *ConnWithReconnect) TLSConnectionState() (tls.ConnectionState, bool)
- func (c *ConnWithReconnect) UnauthenticatedBind(username string) error
- func (c *ConnWithReconnect) Unbind() error
- type Identity
- func (i *Identity) GetLDAPGroupByAttribute(log *zerolog.Logger, lc ldap.Client, attribute, value string) (*ldap.Entry, error)
- func (i *Identity) GetLDAPGroupByFilter(log *zerolog.Logger, lc ldap.Client, filter string) (*ldap.Entry, error)
- func (i *Identity) GetLDAPGroupByID(log *zerolog.Logger, lc ldap.Client, id string) (*ldap.Entry, error)
- func (i *Identity) GetLDAPGroupMembers(log *zerolog.Logger, lc ldap.Client, group *ldap.Entry) ([]*ldap.Entry, error)
- func (i *Identity) GetLDAPGroups(log *zerolog.Logger, lc ldap.Client, query string) ([]*ldap.Entry, error)
- func (i *Identity) GetLDAPUserByAttribute(log *zerolog.Logger, lc ldap.Client, attribute, value string) (*ldap.Entry, error)
- func (i *Identity) GetLDAPUserByDN(log *zerolog.Logger, lc ldap.Client, dn string) (*ldap.Entry, error)
- func (i *Identity) GetLDAPUserByFilter(log *zerolog.Logger, lc ldap.Client, filter string) (*ldap.Entry, error)
- func (i *Identity) GetLDAPUserByID(log *zerolog.Logger, lc ldap.Client, id string) (*ldap.Entry, error)
- func (i *Identity) GetLDAPUserGroups(log *zerolog.Logger, lc ldap.Client, userEntry *ldap.Entry) ([]string, error)
- func (i *Identity) GetLDAPUsers(log *zerolog.Logger, lc ldap.Client, query string) ([]*ldap.Entry, error)
- func (i *Identity) GetUserType(userEntry *ldap.Entry) identityUser.UserType
- func (i *Identity) IsLDAPUserInDisabledGroup(log *zerolog.Logger, lc ldap.Client, userEntry *ldap.Entry) bool
- func (i *Identity) Setup() error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConnWithReconnect ¶
type ConnWithReconnect struct {
// contains filtered or unexported fields
}
ConnWithReconnect maintains an LDAP Connection that automatically reconnects after network errors
func NewLDAPWithReconnect ¶
func NewLDAPWithReconnect(config Config) *ConnWithReconnect
NewLDAPWithReconnect Returns a new ConnWithReconnect initialized from config
func (*ConnWithReconnect) Add ¶
func (c *ConnWithReconnect) Add(a *ldap.AddRequest) error
Add implements the ldap.Client interface
func (*ConnWithReconnect) Bind ¶
func (c *ConnWithReconnect) Bind(username, password string) error
Bind implements the ldap.Client interface
func (*ConnWithReconnect) Close ¶
func (c *ConnWithReconnect) Close() (err error)
Close implements the ldap.Client interface
func (*ConnWithReconnect) Compare ¶
func (c *ConnWithReconnect) Compare(dn, attribute, value string) (bool, error)
Compare implements the ldap.Client interface
func (*ConnWithReconnect) Del ¶
func (c *ConnWithReconnect) Del(d *ldap.DelRequest) error
Del implements the ldap.Client interface
func (*ConnWithReconnect) DirSync ¶ added in v2.15.0
func (c *ConnWithReconnect) DirSync(searchRequest *ldap.SearchRequest, flags, maxAttrCount int64, cookie []byte) (*ldap.SearchResult, error)
DirSync implements the ldap.Client interface
func (*ConnWithReconnect) DirSyncAsync ¶ added in v2.17.0
func (c *ConnWithReconnect) DirSyncAsync(ctx context.Context, searchRequest *ldap.SearchRequest, bufferSize int, flags, maxAttrCount int64, cookie []byte) ldap.Response
DirSyncAsync implements the ldap.Client interface
func (*ConnWithReconnect) ExternalBind ¶
func (c *ConnWithReconnect) ExternalBind() error
ExternalBind implements the ldap.Client interface
func (*ConnWithReconnect) GetLastError ¶ added in v2.15.0
func (c *ConnWithReconnect) GetLastError() error
func (*ConnWithReconnect) IsClosing ¶
func (c *ConnWithReconnect) IsClosing() bool
IsClosing implements the ldap.Client interface
func (*ConnWithReconnect) Modify ¶
func (c *ConnWithReconnect) Modify(m *ldap.ModifyRequest) error
Modify implements the ldap.Client interface
func (*ConnWithReconnect) ModifyDN ¶
func (c *ConnWithReconnect) ModifyDN(m *ldap.ModifyDNRequest) error
ModifyDN implements the ldap.Client interface
func (*ConnWithReconnect) ModifyWithResult ¶
func (c *ConnWithReconnect) ModifyWithResult(m *ldap.ModifyRequest) (*ldap.ModifyResult, error)
ModifyWithResult implements the ldap.Client interface
func (*ConnWithReconnect) NTLMUnauthenticatedBind ¶ added in v2.7.3
func (c *ConnWithReconnect) NTLMUnauthenticatedBind(domain, username string) error
NTLMUnauthenticatedBind implements the ldap.Client interface
func (*ConnWithReconnect) PasswordModify ¶
func (c *ConnWithReconnect) PasswordModify(*ldap.PasswordModifyRequest) (*ldap.PasswordModifyResult, error)
PasswordModify implements the ldap.Client interface
func (*ConnWithReconnect) Search ¶
func (c *ConnWithReconnect) Search(sr *ldap.SearchRequest) (*ldap.SearchResult, error)
Search implements the ldap.Client interface
func (*ConnWithReconnect) SearchAsync ¶ added in v2.17.0
func (c *ConnWithReconnect) SearchAsync(ctx context.Context, searchRequest *ldap.SearchRequest, bufferSize int) ldap.Response
SearchAsync implements the ldap.Client interface
func (*ConnWithReconnect) SearchWithPaging ¶
func (c *ConnWithReconnect) SearchWithPaging(searchRequest *ldap.SearchRequest, pagingSize uint32) (*ldap.SearchResult, error)
SearchWithPaging implements the ldap.Client interface
func (*ConnWithReconnect) SetLogger ¶
func (c *ConnWithReconnect) SetLogger(logger *zerolog.Logger)
SetLogger sets the logger for the current instance
func (*ConnWithReconnect) SetTimeout ¶
func (c *ConnWithReconnect) SetTimeout(time.Duration)
SetTimeout implements the ldap.Client interface
func (*ConnWithReconnect) SimpleBind ¶
func (c *ConnWithReconnect) SimpleBind(*ldap.SimpleBindRequest) (*ldap.SimpleBindResult, error)
SimpleBind implements the ldap.Client interface
func (*ConnWithReconnect) Start ¶
func (c *ConnWithReconnect) Start()
Start implements the ldap.Client interface
func (*ConnWithReconnect) StartTLS ¶
func (c *ConnWithReconnect) StartTLS(*tls.Config) error
StartTLS implements the ldap.Client interface
func (*ConnWithReconnect) Syncrepl ¶ added in v2.17.0
func (c *ConnWithReconnect) Syncrepl(ctx context.Context, searchRequest *ldap.SearchRequest, bufferSize int, mode ldap.ControlSyncRequestMode, cookie []byte, reloadHint bool) ldap.Response
Syncrepl implements the ldap.Client interface
func (*ConnWithReconnect) TLSConnectionState ¶ added in v2.7.3
func (c *ConnWithReconnect) TLSConnectionState() (tls.ConnectionState, bool)
TLSConnectionState implements the ldap.Client interface
func (*ConnWithReconnect) UnauthenticatedBind ¶
func (c *ConnWithReconnect) UnauthenticatedBind(username string) error
UnauthenticatedBind implements the ldap.Client interface
func (*ConnWithReconnect) Unbind ¶ added in v2.7.3
func (c *ConnWithReconnect) Unbind() error
Unbind implements the ldap.Client interface
type Identity ¶
type Identity struct { User userConfig `mapstructure:",squash"` Group groupConfig `mapstructure:",squash"` }
Identity provides methods to query users and groups from an LDAP server
func (*Identity) GetLDAPGroupByAttribute ¶
func (i *Identity) GetLDAPGroupByAttribute(log *zerolog.Logger, lc ldap.Client, attribute, value string) (*ldap.Entry, error)
GetLDAPGroupByAttribute looks up a single group by attribute (can be "mail", "gid_number", "display_name", "group_name", "group_id"). Returns the corresponding ldap.Entry
func (*Identity) GetLDAPGroupByFilter ¶
func (i *Identity) GetLDAPGroupByFilter(log *zerolog.Logger, lc ldap.Client, filter string) (*ldap.Entry, error)
GetLDAPGroupByFilter looks up a single group by the supplied LDAP filter returns the corresponding ldap.Entry
func (*Identity) GetLDAPGroupByID ¶
func (i *Identity) GetLDAPGroupByID(log *zerolog.Logger, lc ldap.Client, id string) (*ldap.Entry, error)
GetLDAPGroupByID looks up a group by the supplied Id. Returns the corresponding ldap.Entry
func (*Identity) GetLDAPGroupMembers ¶
func (i *Identity) GetLDAPGroupMembers(log *zerolog.Logger, lc ldap.Client, group *ldap.Entry) ([]*ldap.Entry, error)
GetLDAPGroupMembers looks up all members of the supplied LDAP group entry and returns the corresponding LDAP user entries
func (*Identity) GetLDAPGroups ¶
func (i *Identity) GetLDAPGroups(log *zerolog.Logger, lc ldap.Client, query string) ([]*ldap.Entry, error)
GetLDAPGroups searches for groups using a prefix-substring match on the group attributes. Returns a slice of matching ldap.Entries
func (*Identity) GetLDAPUserByAttribute ¶
func (i *Identity) GetLDAPUserByAttribute(log *zerolog.Logger, lc ldap.Client, attribute, value string) (*ldap.Entry, error)
GetLDAPUserByAttribute looks up a single user by attribute (can be "mail", "uid", "gid", "username" or "userid"). Returns the corresponding ldap.Entry
func (*Identity) GetLDAPUserByDN ¶
func (i *Identity) GetLDAPUserByDN(log *zerolog.Logger, lc ldap.Client, dn string) (*ldap.Entry, error)
GetLDAPUserByDN looks up a single user by the supplied LDAP DN returns the corresponding ldap.Entry
func (*Identity) GetLDAPUserByFilter ¶
func (i *Identity) GetLDAPUserByFilter(log *zerolog.Logger, lc ldap.Client, filter string) (*ldap.Entry, error)
GetLDAPUserByFilter looks up a single user by the supplied LDAP filter returns the corresponding ldap.Entry
func (*Identity) GetLDAPUserByID ¶
func (i *Identity) GetLDAPUserByID(log *zerolog.Logger, lc ldap.Client, id string) (*ldap.Entry, error)
GetLDAPUserByID looks up a user by the supplied Id. Returns the corresponding ldap.Entry
func (*Identity) GetLDAPUserGroups ¶
func (i *Identity) GetLDAPUserGroups(log *zerolog.Logger, lc ldap.Client, userEntry *ldap.Entry) ([]string, error)
GetLDAPUserGroups looks up the group member ship of the supplied LDAP user entry. Returns a slice of strings with groupids
func (*Identity) GetLDAPUsers ¶
func (i *Identity) GetLDAPUsers(log *zerolog.Logger, lc ldap.Client, query string) ([]*ldap.Entry, error)
GetLDAPUsers searches for users using a prefix-substring match on the user attributes. Returns a slice of matching ldap.Entries
func (*Identity) GetUserType ¶ added in v2.13.0
func (i *Identity) GetUserType(userEntry *ldap.Entry) identityUser.UserType
GetUserType is used to get the proper UserType from ldap entry string