package auth import ( "context" "net/http" "github.com/pkg/errors" ) type GetClaimsFunc func(ctx context.Context, r *http.Request, claims ...string) ([]string, error) type Option struct { GetClaims GetClaimsFunc ProfileClaims []string } type OptionFunc func(*Option) func defaultOptions() *Option { return &Option{ GetClaims: dummyGetClaims, ProfileClaims: []string{ ClaimSubject, ClaimIssuer, ClaimEdgeEntrypoint, ClaimEdgeRole, ClaimPreferredUsername, ClaimEdgeTenant, }, } } func dummyGetClaims(ctx context.Context, r *http.Request, claims ...string) ([]string, error) { return nil, errors.Errorf("dummy getclaim func cannot retrieve claims '%s'", claims) } func WithGetClaims(fn GetClaimsFunc) OptionFunc { return func(o *Option) { o.GetClaims = fn } } func WithProfileClaims(claims ...string) OptionFunc { return func(o *Option) { o.ProfileClaims = claims } }