Documentation
¶
Index ¶
- Variables
- type AuthProvider
- type AuthProviderOptions
- type FileAuthProvider
- func (f *FileAuthProvider) GetTemplatePaths() []string
- func (f *FileAuthProvider) LookupAddr(addr string) authx.AuthStrategy
- func (f *FileAuthProvider) LookupURL(u *url.URL) authx.AuthStrategy
- func (f *FileAuthProvider) LookupURLX(u *urlutil.URL) authx.AuthStrategy
- func (f *FileAuthProvider) PreFetchSecrets() error
- type MultiAuthProvider
- func (m *MultiAuthProvider) GetTemplatePaths() []string
- func (m *MultiAuthProvider) LookupAddr(host string) authx.AuthStrategy
- func (m *MultiAuthProvider) LookupURL(u *url.URL) authx.AuthStrategy
- func (m *MultiAuthProvider) LookupURLX(u *urlutil.URL) authx.AuthStrategy
- func (m *MultiAuthProvider) PreFetchSecrets() error
Constants ¶
This section is empty.
Variables ¶
var (
ErrNoSecrets = fmt.Errorf("no secrets in given provider")
)
Functions ¶
This section is empty.
Types ¶
type AuthProvider ¶
type AuthProvider interface {
// LookupAddr looks up a given domain/address and returns appropriate auth strategy
// for it (accepted inputs are scanme.sh or scanme.sh:443)
LookupAddr(string) authx.AuthStrategy
// LookupURL looks up a given URL and returns appropriate auth strategy
// it accepts a valid url struct and returns the auth strategy
LookupURL(*url.URL) authx.AuthStrategy
// LookupURLX looks up a given URL and returns appropriate auth strategy
// it accepts pd url struct (i.e urlutil.URL) and returns the auth strategy
LookupURLX(*urlutil.URL) authx.AuthStrategy
// GetTemplatePaths returns the template path for the auth provider
// that will be used for dynamic secret fetching
GetTemplatePaths() []string
// PreFetchSecrets pre-fetches the secrets from the auth provider
// instead of lazy fetching
PreFetchSecrets() error
}
AuthProvider is an interface for auth providers It implements a data structure suitable for quick lookup and retrieval of auth strategies
func NewAuthProvider ¶
func NewAuthProvider(options *AuthProviderOptions) (AuthProvider, error)
NewAuthProvider creates a new auth provider from the given options
func NewFileAuthProvider ¶
func NewFileAuthProvider(path string, callback authx.LazyFetchSecret) (AuthProvider, error)
NewFileAuthProvider creates a new file based auth provider
func NewMultiAuthProvider ¶
func NewMultiAuthProvider(providers ...AuthProvider) AuthProvider
NewMultiAuthProvider creates a new multi auth provider
type AuthProviderOptions ¶
type AuthProviderOptions struct {
// File based auth provider options
SecretsFiles []string
// LazyFetchSecret is a callback for lazy fetching of dynamic secrets
LazyFetchSecret authx.LazyFetchSecret
}
AuthProviderOptions contains options for the auth provider
type FileAuthProvider ¶
type FileAuthProvider struct {
Path string
// contains filtered or unexported fields
}
FileAuthProvider is an auth provider for file based auth it accepts a secrets file and returns its provider
func (*FileAuthProvider) GetTemplatePaths ¶
func (f *FileAuthProvider) GetTemplatePaths() []string
GetTemplatePaths returns the template path for the auth provider
func (*FileAuthProvider) LookupAddr ¶
func (f *FileAuthProvider) LookupAddr(addr string) authx.AuthStrategy
LookupAddr looks up a given domain/address and returns appropriate auth strategy
func (*FileAuthProvider) LookupURL ¶
func (f *FileAuthProvider) LookupURL(u *url.URL) authx.AuthStrategy
LookupURL looks up a given URL and returns appropriate auth strategy
func (*FileAuthProvider) LookupURLX ¶
func (f *FileAuthProvider) LookupURLX(u *urlutil.URL) authx.AuthStrategy
LookupURLX looks up a given URL and returns appropriate auth strategy
func (*FileAuthProvider) PreFetchSecrets ¶
func (f *FileAuthProvider) PreFetchSecrets() error
PreFetchSecrets pre-fetches the secrets from the auth provider
type MultiAuthProvider ¶
type MultiAuthProvider struct {
Providers []AuthProvider
}
MultiAuthProvider is a convenience wrapper for multiple auth providers it returns the first matching auth strategy for a given domain if there are multiple auth strategies for a given domain, it returns the first one
func (*MultiAuthProvider) GetTemplatePaths ¶
func (m *MultiAuthProvider) GetTemplatePaths() []string
func (*MultiAuthProvider) LookupAddr ¶
func (m *MultiAuthProvider) LookupAddr(host string) authx.AuthStrategy
func (*MultiAuthProvider) LookupURL ¶
func (m *MultiAuthProvider) LookupURL(u *url.URL) authx.AuthStrategy
func (*MultiAuthProvider) LookupURLX ¶
func (m *MultiAuthProvider) LookupURLX(u *urlutil.URL) authx.AuthStrategy
func (*MultiAuthProvider) PreFetchSecrets ¶
func (m *MultiAuthProvider) PreFetchSecrets() error