client

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrTokenRequestFailed = errors.New("orionis client: token request failed")

Functions

func NewHTTPClient

func NewHTTPClient(base *http.Client, provider *Provider, audience string, scopes []string) *http.Client

Types

type Authenticator

type Authenticator interface {
	Authenticate(req *http.Request) error
}

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

func FromConfig

func FromConfig(cfg Config) *Builder

func New

func New() *Builder

func (*Builder) As

func (b *Builder) As(clientID, clientSecret string) *Builder

func (*Builder) Audience

func (b *Builder) Audience(audience string) *Builder

func (*Builder) Authenticator

func (b *Builder) Authenticator(authenticator Authenticator) *Builder

func (*Builder) Build

func (b *Builder) Build() (*Provider, error)

func (*Builder) BuildHTTPClient

func (b *Builder) BuildHTTPClient(base *http.Client) (*http.Client, error)

func (*Builder) ClientSecret

func (b *Builder) ClientSecret(clientID, clientSecret string) *Builder

func (*Builder) Credentials

func (b *Builder) Credentials(clientID, clientSecret string) *Builder

func (*Builder) For

func (b *Builder) For(audience string, scopes ...string) *Builder

func (*Builder) Must

func (b *Builder) Must() *Provider

func (*Builder) MustHTTPClient

func (b *Builder) MustHTTPClient(base *http.Client) *http.Client

func (*Builder) RefreshSkew

func (b *Builder) RefreshSkew(skew time.Duration) *Builder

func (*Builder) Scope

func (b *Builder) Scope(scope string) *Builder

func (*Builder) Scopes

func (b *Builder) Scopes(scopes ...string) *Builder

func (*Builder) TokenHTTPClient

func (b *Builder) TokenHTTPClient(hc *http.Client) *Builder

func (*Builder) TokenURL

func (b *Builder) TokenURL(tokenURL string) *Builder

type ClientSecretBasic

type ClientSecretBasic struct {
	ClientID     string
	ClientSecret string
}

func (ClientSecretBasic) Authenticate

func (a ClientSecretBasic) Authenticate(req *http.Request) error

type Config

type Config struct {
	TokenURL      string
	ClientID      string
	ClientSecret  string
	Audience      string
	Scopes        []string
	HTTPClient    *http.Client
	Authenticator Authenticator
	RefreshSkew   time.Duration
}

type Provider

type Provider struct {
	// contains filtered or unexported fields
}

func NewProvider

func NewProvider(cfg Config) (*Provider, error)

func (*Provider) AuthorizeRequest

func (p *Provider) AuthorizeRequest(ctx context.Context, req *http.Request, audience string, scopes []string) error

func (*Provider) For

func (p *Provider) For(audience string, scopes ...string) Target

func (*Provider) HTTPClient

func (p *Provider) HTTPClient(base *http.Client) *http.Client

func (*Provider) Token

func (p *Provider) Token(ctx context.Context, audience string, scopes []string) (string, error)

func (*Provider) TokenResponse

func (p *Provider) TokenResponse(ctx context.Context, audience string, scopes []string) (orionis.TokenResponse, error)

func (*Provider) Transport

func (p *Provider) Transport(base http.RoundTripper) http.RoundTripper

type Target

type Target struct {
	// contains filtered or unexported fields
}

func (Target) AuthorizeRequest

func (t Target) AuthorizeRequest(ctx context.Context, req *http.Request) error

func (Target) HTTPClient

func (t Target) HTTPClient(base *http.Client) *http.Client

func (Target) Scopes

func (t Target) Scopes(scopes ...string) Target

func (Target) Token

func (t Target) Token(ctx context.Context) (string, error)

func (Target) TokenResponse

func (t Target) TokenResponse(ctx context.Context) (orionis.TokenResponse, error)

func (Target) Transport

func (t Target) Transport(base http.RoundTripper) http.RoundTripper

type Transport

type Transport struct {
	Base     http.RoundTripper
	Provider *Provider
	Audience string
	Scopes   []string
}

func (*Transport) RoundTrip

func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error)

Jump to

Keyboard shortcuts

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