auth

package
v1.33.0 Latest Latest
Warning

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

Go to latest
Published: Jun 10, 2020 License: BSD-2-Clause Imports: 13 Imported by: 21

Documentation

Index

Constants

View Source
const (
	TidepoolServiceSecretHeaderKey      = "X-Tidepool-Service-Secret"
	TidepoolAuthorizationHeaderKey      = "Authorization"
	TidepoolSessionTokenHeaderKey       = "X-Tidepool-Session-Token"
	TidepoolRestrictedTokenParameterKey = "restricted_token"
)
View Source
const MaximumExpirationDuration = time.Hour
View Source
const ProviderNameLengthMaximum = 100
View Source
const (
	ProviderTypeOAuth = "oauth"
)

Variables

This section is empty.

Functions

func ErrorValueStringAsProviderSessionIDNotValid added in v1.27.0

func ErrorValueStringAsProviderSessionIDNotValid(value string) error

func ErrorValueStringAsRestrictedTokenIDNotValid added in v1.27.0

func ErrorValueStringAsRestrictedTokenIDNotValid(value string) error

func ErrorValueStringAsUserIDNotValid added in v1.31.0

func ErrorValueStringAsUserIDNotValid(value string) error

func IsValidProviderName added in v1.29.0

func IsValidProviderName(value string) bool

func IsValidProviderSessionID added in v1.27.0

func IsValidProviderSessionID(value string) bool

func IsValidRestrictedTokenID added in v1.27.0

func IsValidRestrictedTokenID(value string) bool

func IsValidUserID added in v1.31.0

func IsValidUserID(value string) bool

func NewContextWithServerSessionToken

func NewContextWithServerSessionToken(ctx context.Context, serverSessionToken string) context.Context

func NewProviderSessionID added in v1.27.0

func NewProviderSessionID() string

func NewRestrictedTokenID added in v1.27.0

func NewRestrictedTokenID() string

func NewUserID added in v1.31.0

func NewUserID() string

func ProviderNameValidator added in v1.29.0

func ProviderNameValidator(value string, errorReporter structure.ErrorReporter)

func ProviderSessionIDValidator added in v1.27.0

func ProviderSessionIDValidator(value string, errorReporter structure.ErrorReporter)

func ProviderTypes

func ProviderTypes() []string

func RestrictedTokenIDValidator added in v1.27.0

func RestrictedTokenIDValidator(value string, errorReporter structure.ErrorReporter)

func ServerSessionTokenFromContext

func ServerSessionTokenFromContext(ctx context.Context) string

func UserIDValidator added in v1.31.0

func UserIDValidator(value string, errorReporter structure.ErrorReporter)

func ValidateProviderName added in v1.29.0

func ValidateProviderName(value string) error

func ValidateProviderSessionID added in v1.27.0

func ValidateProviderSessionID(value string) error

func ValidateRestrictedTokenID added in v1.27.0

func ValidateRestrictedTokenID(value string) error

func ValidateUserID added in v1.31.0

func ValidateUserID(value string) error

Types

type ExternalAccessor

type ExternalAccessor interface {
	ServerSessionToken() (string, error)
	ValidateSessionToken(ctx context.Context, token string) (request.Details, error)
	EnsureAuthorized(ctx context.Context) error
	EnsureAuthorizedService(ctx context.Context) error
	EnsureAuthorizedUser(ctx context.Context, targetUserID string, permission string) (string, error)
}

type ProviderSession

type ProviderSession struct {
	ID           string       `json:"id" bson:"id"`
	UserID       string       `json:"userId" bson:"userId"`
	Type         string       `json:"type" bson:"type"`
	Name         string       `json:"name" bson:"name"`
	OAuthToken   *oauth.Token `json:"oauthToken,omitempty" bson:"oauthToken,omitempty"`
	CreatedTime  time.Time    `json:"createdTime" bson:"createdTime"`
	ModifiedTime *time.Time   `json:"modifiedTime,omitempty" bson:"modifiedTime,omitempty"`
}

func NewProviderSession

func NewProviderSession(userID string, create *ProviderSessionCreate) (*ProviderSession, error)

func (*ProviderSession) Parse

func (p *ProviderSession) Parse(parser structure.ObjectParser)

func (*ProviderSession) Sanitize

func (p *ProviderSession) Sanitize(details request.Details) error

func (*ProviderSession) Validate

func (p *ProviderSession) Validate(validator structure.Validator)

type ProviderSessionAccessor

type ProviderSessionAccessor interface {
	ListUserProviderSessions(ctx context.Context, userID string, filter *ProviderSessionFilter, pagination *page.Pagination) (ProviderSessions, error)
	CreateUserProviderSession(ctx context.Context, userID string, create *ProviderSessionCreate) (*ProviderSession, error)
	DeleteAllProviderSessions(ctx context.Context, userID string) error

	GetProviderSession(ctx context.Context, id string) (*ProviderSession, error)
	UpdateProviderSession(ctx context.Context, id string, update *ProviderSessionUpdate) (*ProviderSession, error)
	DeleteProviderSession(ctx context.Context, id string) error
}

type ProviderSessionCreate

type ProviderSessionCreate struct {
	Type       string       `json:"type" bson:"type"`
	Name       string       `json:"name" bson:"name"`
	OAuthToken *oauth.Token `json:"oauthToken,omitempty" bson:"oauthToken,omitempty"`
}

func NewProviderSessionCreate

func NewProviderSessionCreate() *ProviderSessionCreate

func (*ProviderSessionCreate) Parse

func (p *ProviderSessionCreate) Parse(parser structure.ObjectParser)

func (*ProviderSessionCreate) Validate

func (p *ProviderSessionCreate) Validate(validator structure.Validator)

type ProviderSessionFilter

type ProviderSessionFilter struct {
	Type *string `json:"type,omitempty" bson:"type,omitempty"`
	Name *string `json:"name,omitempty" bson:"name,omitempty"`
}

func NewProviderSessionFilter

func NewProviderSessionFilter() *ProviderSessionFilter

func (*ProviderSessionFilter) MutateRequest added in v1.27.0

func (p *ProviderSessionFilter) MutateRequest(req *http.Request) error

func (*ProviderSessionFilter) Parse

func (p *ProviderSessionFilter) Parse(parser structure.ObjectParser)

func (*ProviderSessionFilter) Validate

func (p *ProviderSessionFilter) Validate(validator structure.Validator)

type ProviderSessionUpdate

type ProviderSessionUpdate struct {
	OAuthToken *oauth.Token `json:"oauthToken,omitempty" bson:"oauthToken,omitempty"`
}

func NewProviderSessionUpdate

func NewProviderSessionUpdate() *ProviderSessionUpdate

func (*ProviderSessionUpdate) IsEmpty added in v1.31.0

func (p *ProviderSessionUpdate) IsEmpty() bool

func (*ProviderSessionUpdate) Parse

func (p *ProviderSessionUpdate) Parse(parser structure.ObjectParser)

func (*ProviderSessionUpdate) Validate

func (p *ProviderSessionUpdate) Validate(validator structure.Validator)

type ProviderSessions

type ProviderSessions []*ProviderSession

func (ProviderSessions) Sanitize

func (p ProviderSessions) Sanitize(details request.Details) error

type RestrictedToken

type RestrictedToken struct {
	ID             string     `json:"id" bson:"id"`
	UserID         string     `json:"userId" bson:"userId"`
	Paths          *[]string  `json:"paths,omitempty" bson:"paths,omitempty"`
	ExpirationTime time.Time  `json:"expirationTime" bson:"expirationTime"`
	CreatedTime    time.Time  `json:"createdTime" bson:"createdTime"`
	ModifiedTime   *time.Time `json:"modifiedTime,omitempty" bson:"modifiedTime,omitempty"`
}

func NewRestrictedToken

func NewRestrictedToken(userID string, create *RestrictedTokenCreate) (*RestrictedToken, error)

func (*RestrictedToken) Authenticates

func (r *RestrictedToken) Authenticates(req *http.Request) bool

func (*RestrictedToken) Parse

func (r *RestrictedToken) Parse(parser structure.ObjectParser)

func (*RestrictedToken) Sanitize

func (r *RestrictedToken) Sanitize(details request.Details) error

func (*RestrictedToken) Validate

func (r *RestrictedToken) Validate(validator structure.Validator)

type RestrictedTokenAccessor

type RestrictedTokenAccessor interface {
	ListUserRestrictedTokens(ctx context.Context, userID string, filter *RestrictedTokenFilter, pagination *page.Pagination) (RestrictedTokens, error)
	CreateUserRestrictedToken(ctx context.Context, userID string, create *RestrictedTokenCreate) (*RestrictedToken, error)
	DeleteAllRestrictedTokens(ctx context.Context, userID string) error

	GetRestrictedToken(ctx context.Context, id string) (*RestrictedToken, error)
	UpdateRestrictedToken(ctx context.Context, id string, update *RestrictedTokenUpdate) (*RestrictedToken, error)
	DeleteRestrictedToken(ctx context.Context, id string) error
}

type RestrictedTokenCreate

type RestrictedTokenCreate struct {
	Paths          *[]string  `json:"paths,omitempty"`
	ExpirationTime *time.Time `json:"expirationTime,omitempty"`
}

func NewRestrictedTokenCreate

func NewRestrictedTokenCreate() *RestrictedTokenCreate

func (*RestrictedTokenCreate) Parse

func (r *RestrictedTokenCreate) Parse(parser structure.ObjectParser)

func (*RestrictedTokenCreate) Validate

func (r *RestrictedTokenCreate) Validate(validator structure.Validator)

type RestrictedTokenFilter

type RestrictedTokenFilter struct{}

func NewRestrictedTokenFilter

func NewRestrictedTokenFilter() *RestrictedTokenFilter

func (*RestrictedTokenFilter) MutateRequest added in v1.27.0

func (r *RestrictedTokenFilter) MutateRequest(req *http.Request) error

func (*RestrictedTokenFilter) Parse

func (r *RestrictedTokenFilter) Parse(parser structure.ObjectParser)

func (*RestrictedTokenFilter) Validate

func (r *RestrictedTokenFilter) Validate(validator structure.Validator)

type RestrictedTokenUpdate

type RestrictedTokenUpdate struct {
	Paths          *[]string  `json:"paths,omitempty"`
	ExpirationTime *time.Time `json:"expirationTime,omitempty"`
}

func NewRestrictedTokenUpdate

func NewRestrictedTokenUpdate() *RestrictedTokenUpdate

func (*RestrictedTokenUpdate) IsEmpty added in v1.31.0

func (r *RestrictedTokenUpdate) IsEmpty() bool

func (*RestrictedTokenUpdate) Parse

func (r *RestrictedTokenUpdate) Parse(parser structure.ObjectParser)

func (*RestrictedTokenUpdate) Validate

func (r *RestrictedTokenUpdate) Validate(validator structure.Validator)

type RestrictedTokens

type RestrictedTokens []*RestrictedToken

func (RestrictedTokens) Sanitize

func (r RestrictedTokens) Sanitize(details request.Details) error

Directories

Path Synopsis
api

Jump to

Keyboard shortcuts

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