auth

package
v0.0.0-...-470703e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2024 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	//nolint:gosec // not a token value, but a configuration key
	CONFIG_KEY_ALLOWED_HOST_REGEXP        = "INTERNAL_OAUTH_ALLOWED_HOSTS"
	CONFIG_KEY_OAUTH_TOKEN         string = "INTERNAL_OAUTH_TOKEN_STORAGE"
	OAUTH_CLIENT_ID                string = "b56d4c2e-b9e1-4d27-8773-ad47eafb0956"
	CALLBACK_HOSTNAME              string = "127.0.0.1"
	CALLBACK_PATH                  string = "/authorization-code/callback"
	TIMEOUT_SECONDS                       = 120 * time.Second
	AUTHENTICATED_MESSAGE                 = "Your account has been authenticated."
	PARAMETER_CLIENT_ID            string = "client-id"
	PARAMETER_CLIENT_SECRET        string = "client-secret"
)

Variables

This section is empty.

Functions

func GetAudienceClaimFromOauthToken

func GetAudienceClaimFromOauthToken(oauthTokenString string) ([]string, error)

oauthApiUrl returns the API URL specified by the audience claim in a JWT token established by a prior OAuth authentication flow.

Returns an empty string if an OAuth token is not available, cannot be parsed, or lacks such an audience claim, along with an error that may have occurred in the attempt to parse it.

func GetAuthHeader

func GetAuthHeader(config configuration.Configuration) string

GetAuthHeader returns the authentication header value based on the configuration.

func GetOAuthToken

func GetOAuthToken(config configuration.Configuration) (*oauth2.Token, error)

GetOAuthToken extracts an oauth2.Token from the given configuration instance if available

func IsKnownOAuthEndpoint

func IsKnownOAuthEndpoint(endpoint string) bool

func OpenBrowser

func OpenBrowser(authUrl string)

func RefreshToken

func RefreshToken(ctx context.Context, oauthConfig *oauth2.Config, token *oauth2.Token) (*oauth2.Token, error)

func ShutdownServer

func ShutdownServer(server *http.Server)

Types

type Authenticator

type Authenticator interface {
	// Authenticate authenticates the user and returns an error if the authentication failed.
	Authenticate() error
	// AddAuthenticationHeader adds the authentication header to the request.
	AddAuthenticationHeader(request *http.Request) error
	// IsSupported returns true if the authenticator is ready for use.
	// If false is returned, it is not possible to add authentication headers/env vars.
	IsSupported() bool
}

func CreateAuthenticator

func CreateAuthenticator(config configuration.Configuration, httpClient *http.Client) Authenticator

func NewOAuth2Authenticator

func NewOAuth2Authenticator(config configuration.Configuration, httpClient *http.Client) Authenticator

func NewOAuth2AuthenticatorWithCustomFuncs deprecated

func NewOAuth2AuthenticatorWithCustomFuncs(
	config configuration.Configuration,
	httpClient *http.Client,
	openBrowserFunc func(url string),
	shutdownServerFunc func(server *http.Server),
) Authenticator

Deprecated: use NewOAuth2AuthenticatorWithOpts instead

func NewOAuth2AuthenticatorWithOpts

func NewOAuth2AuthenticatorWithOpts(config configuration.Configuration, opts ...OAuth2AuthenticatorOption) Authenticator

func NewTokenAuthenticator

func NewTokenAuthenticator(tokenFunc func() string) Authenticator

type GrantType

type GrantType int
const (
	ClientCredentialsGrant GrantType = iota
	AuthorizationCodeGrant
)

type OAuth2AuthenticatorOption

type OAuth2AuthenticatorOption func(authenticator *oAuth2Authenticator)

func WithHttpClient

func WithHttpClient(httpClient *http.Client) OAuth2AuthenticatorOption

func WithLogger

func WithLogger(logger *zerolog.Logger) OAuth2AuthenticatorOption

func WithOpenBrowserFunc

func WithOpenBrowserFunc(openBrowserFunc func(string)) OAuth2AuthenticatorOption

func WithShutdownServerFunc

func WithShutdownServerFunc(shutdownServerFunc func(server *http.Server)) OAuth2AuthenticatorOption

func WithTokenRefresherFunc

func WithTokenRefresherFunc(refreshFunc func(ctx context.Context, oauthConfig *oauth2.Config, token *oauth2.Token) (*oauth2.Token, error)) OAuth2AuthenticatorOption

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL