connector

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2015 License: Apache-2.0 Imports: 19 Imported by: 584

Documentation

Overview

DO NOT EDIT: This file was auto-generated by "go generate" To regenerate run:

go install github.com/coreos/dex/cmd/genconfig
go generate <<fully qualified package name>>

Index

Constants

View Source
const (
	LocalConnectorType    = "local"
	LoginPageTemplateName = "local-login.html"
)
View Source
const (
	BitbucketConnectorType = "bitbucket"
)
View Source
const (
	GitHubConnectorType = "github"
)
View Source
const (
	OIDCConnectorType = "oidc"
)

Variables

View Source
var ErrorNotFound = errors.New("connector not found in repository")

Functions

func RegisterConnectorConfigType

func RegisterConnectorConfigType(connectorType string, fn NewConnectorConfigFunc)

Types

type BitbucketConnectorConfig added in v0.2.0

type BitbucketConnectorConfig struct {
	ID           string `json:"id"`
	ClientID     string `json:"clientID"`
	ClientSecret string `json:"clientSecret"`
}

func (*BitbucketConnectorConfig) Connector added in v0.2.0

func (cfg *BitbucketConnectorConfig) Connector(ns url.URL, lf oidc.LoginFunc, tpls *template.Template) (Connector, error)

func (*BitbucketConnectorConfig) ConnectorID added in v0.2.0

func (cfg *BitbucketConnectorConfig) ConnectorID() string

func (*BitbucketConnectorConfig) ConnectorType added in v0.2.0

func (cfg *BitbucketConnectorConfig) ConnectorType() string

type Connector

type Connector interface {
	// ID returns the ID of the ConnectorConfig used to create the Connector.
	ID() string

	// LoginURL returns the backend's authorization URL for a sessionKey
	// and OAuth2 prompt type.
	LoginURL(sessionKey, prompt string) (string, error)

	// Register allows connectors to register a callback handler with the
	// dex server.
	//
	// Connectors should register with a path that extends the namespace
	// URL provided when the Connector is instantiated.
	Register(mux *http.ServeMux, errorURL url.URL)

	// Sync triggers any long-running tasks needed to maintain the
	// Connector's operation. For example, this would encompass
	// repeatedly caching any remote resources for local use.
	Sync() chan struct{}

	// TrustedEmailProvider indicates whether or not we can trust that email
	// claims coming from this provider.
	TrustedEmailProvider() bool

	health.Checkable
}

type ConnectorConfig

type ConnectorConfig interface {
	// ConnectorID returns a unique end user facing identifier. For example "google".
	ConnectorID() string

	// ConnectorType returns an implementation specific identifier. For example "oidc".
	ConnectorType() string

	// Connector is invoked by the dex server and returns a Connector configured
	// to use the provided arguments. URL namespace is used to register callbacks.
	// loginFunc is used to associate remote identies with dex session keys.
	//
	// The returned Connector must call loginFunc once upon successful
	// identification of a user.
	//
	// Additional templates are passed for connectors that require rendering HTML
	// pages, such as the "local" connector.
	Connector(ns url.URL, loginFunc oidc.LoginFunc, tpls *template.Template) (Connector, error)
}

func NewConnectorConfigFromType

func NewConnectorConfigFromType(connectorType string) (ConnectorConfig, error)

type ConnectorConfigRepo

type ConnectorConfigRepo interface {
	All() ([]ConnectorConfig, error)
	GetConnectorByID(repo.Transaction, string) (ConnectorConfig, error)
}

func NewConnectorConfigRepoFromConfigs added in v0.2.0

func NewConnectorConfigRepoFromConfigs(cfgs []ConnectorConfig) ConnectorConfigRepo

func NewConnectorConfigRepoFromFile

func NewConnectorConfigRepoFromFile(loc string) (ConnectorConfigRepo, error)

type GitHubConnectorConfig added in v0.2.0

type GitHubConnectorConfig struct {
	ID           string `json:"id"`
	ClientID     string `json:"clientID"`
	ClientSecret string `json:"clientSecret"`
}

func (*GitHubConnectorConfig) Connector added in v0.2.0

func (cfg *GitHubConnectorConfig) Connector(ns url.URL, lf oidc.LoginFunc, tpls *template.Template) (Connector, error)

func (*GitHubConnectorConfig) ConnectorID added in v0.2.0

func (cfg *GitHubConnectorConfig) ConnectorID() string

func (*GitHubConnectorConfig) ConnectorType added in v0.2.0

func (cfg *GitHubConnectorConfig) ConnectorType() string

type LocalConnector

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

func (*LocalConnector) Healthy

func (c *LocalConnector) Healthy() error

func (*LocalConnector) ID

func (c *LocalConnector) ID() string

func (*LocalConnector) LoginURL

func (c *LocalConnector) LoginURL(sessionKey, prompt string) (string, error)

func (*LocalConnector) Register

func (c *LocalConnector) Register(mux *http.ServeMux, errorURL url.URL)

func (*LocalConnector) SetLocalIdentityProvider

func (c *LocalConnector) SetLocalIdentityProvider(idp *LocalIdentityProvider)

func (*LocalConnector) Sync

func (c *LocalConnector) Sync() chan struct{}

func (*LocalConnector) TrustedEmailProvider

func (c *LocalConnector) TrustedEmailProvider() bool

type LocalConnectorConfig

type LocalConnectorConfig struct {
	ID            string              `json:"id"`
	PasswordInfos []user.PasswordInfo `json:"passwordInfos"`
}

func (*LocalConnectorConfig) Connector

func (cfg *LocalConnectorConfig) Connector(ns url.URL, lf oidc.LoginFunc, tpls *template.Template) (Connector, error)

func (*LocalConnectorConfig) ConnectorID

func (cfg *LocalConnectorConfig) ConnectorID() string

func (*LocalConnectorConfig) ConnectorType

func (cfg *LocalConnectorConfig) ConnectorType() string

type LocalIdentityProvider

type LocalIdentityProvider struct {
	PasswordInfoRepo user.PasswordInfoRepo
	UserRepo         user.UserRepo
}

func (*LocalIdentityProvider) Identity

func (m *LocalIdentityProvider) Identity(email, password string) (*oidc.Identity, error)

type NewConnectorConfigFunc

type NewConnectorConfigFunc func() ConnectorConfig

type OAuth2Connector added in v0.2.0

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

func (*OAuth2Connector) Healthy added in v0.2.0

func (c *OAuth2Connector) Healthy() error

func (*OAuth2Connector) ID added in v0.2.0

func (c *OAuth2Connector) ID() string

func (*OAuth2Connector) LoginURL added in v0.2.0

func (c *OAuth2Connector) LoginURL(sessionKey, prompt string) (string, error)

func (*OAuth2Connector) Register added in v0.2.0

func (c *OAuth2Connector) Register(mux *http.ServeMux, errorURL url.URL)

func (*OAuth2Connector) Sync added in v0.2.0

func (c *OAuth2Connector) Sync() chan struct{}

func (*OAuth2Connector) TrustedEmailProvider added in v0.2.0

func (c *OAuth2Connector) TrustedEmailProvider() bool

type OIDCConnector

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

func (*OIDCConnector) Healthy

func (c *OIDCConnector) Healthy() error

func (*OIDCConnector) ID

func (c *OIDCConnector) ID() string

func (*OIDCConnector) LoginURL

func (c *OIDCConnector) LoginURL(sessionKey, prompt string) (string, error)

func (*OIDCConnector) Register

func (c *OIDCConnector) Register(mux *http.ServeMux, errorURL url.URL)

func (*OIDCConnector) Sync

func (c *OIDCConnector) Sync() chan struct{}

func (*OIDCConnector) TrustedEmailProvider

func (c *OIDCConnector) TrustedEmailProvider() bool

type OIDCConnectorConfig

type OIDCConnectorConfig struct {
	ID                   string `json:"id"`
	IssuerURL            string `json:"issuerURL"`
	ClientID             string `json:"clientID"`
	ClientSecret         string `json:"clientSecret"`
	TrustedEmailProvider bool   `json:"trustedEmailProvider"`
}

func (*OIDCConnectorConfig) Connector

func (cfg *OIDCConnectorConfig) Connector(ns url.URL, lf oidc.LoginFunc, tpls *template.Template) (Connector, error)

func (*OIDCConnectorConfig) ConnectorID

func (cfg *OIDCConnectorConfig) ConnectorID() string

func (*OIDCConnectorConfig) ConnectorType

func (cfg *OIDCConnectorConfig) ConnectorType() string

type Page

type Page struct {
	PostURL    string
	Name       string
	Error      bool
	Message    string
	SessionKey string
}

Jump to

Keyboard shortcuts

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