mirror of
https://github.com/pomerium/pomerium.git
synced 2025-04-29 10:26:29 +02:00
Commit b7896b3153
moved events.go from the 'authenticate' package to
'internal/authenticateflow' in order to avoid an import cycle. However
this location is not actually suitable, as the hosted authenticate
service refers to AuthEvent and AuthEventFn.
Move events.go back out from under 'internal', to a new package
'authenticate/events'. This should still avoid an import cycle between
'authenticate' and 'internal/authenticateflow', while also allowing the
hosted authenticate service to use the events types.
47 lines
1.5 KiB
Go
47 lines
1.5 KiB
Go
package authenticate
|
|
|
|
import (
|
|
"github.com/pomerium/pomerium/authenticate/events"
|
|
"github.com/pomerium/pomerium/config"
|
|
"github.com/pomerium/pomerium/internal/identity"
|
|
identitypb "github.com/pomerium/pomerium/pkg/grpc/identity"
|
|
)
|
|
|
|
type authenticateConfig struct {
|
|
getIdentityProvider func(options *config.Options, idpID string) (identity.Authenticator, error)
|
|
profileTrimFn func(*identitypb.Profile)
|
|
authEventFn events.AuthEventFn
|
|
}
|
|
|
|
// An Option customizes the Authenticate config.
|
|
type Option func(*authenticateConfig)
|
|
|
|
func getAuthenticateConfig(options ...Option) *authenticateConfig {
|
|
cfg := new(authenticateConfig)
|
|
WithGetIdentityProvider(defaultGetIdentityProvider)(cfg)
|
|
for _, option := range options {
|
|
option(cfg)
|
|
}
|
|
return cfg
|
|
}
|
|
|
|
// WithGetIdentityProvider sets the getIdentityProvider function in the config.
|
|
func WithGetIdentityProvider(getIdentityProvider func(options *config.Options, idpID string) (identity.Authenticator, error)) Option {
|
|
return func(cfg *authenticateConfig) {
|
|
cfg.getIdentityProvider = getIdentityProvider
|
|
}
|
|
}
|
|
|
|
// WithProfileTrimFn sets the profileTrimFn function in the config
|
|
func WithProfileTrimFn(profileTrimFn func(*identitypb.Profile)) Option {
|
|
return func(cfg *authenticateConfig) {
|
|
cfg.profileTrimFn = profileTrimFn
|
|
}
|
|
}
|
|
|
|
// WithOnAuthenticationEventHook sets the authEventFn function in the config
|
|
func WithOnAuthenticationEventHook(fn events.AuthEventFn) Option {
|
|
return func(cfg *authenticateConfig) {
|
|
cfg.authEventFn = fn
|
|
}
|
|
}
|