dex

package
v2.0.6+incompatible Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2020 License: AGPL-3.0 Imports: 15 Imported by: 0

Documentation

Overview

Package dex provides specific connectors for the CoreOS/Dex implementation of OpenID Connect protocol

Index

Constants

This section is empty.

Variables

View Source
var (
	PydioConnectorsConfig = map[string]func() PydioConnectorConfig{}
)

Functions

func ConvertUserApiToIdentity

func ConvertUserApiToIdentity(idmUser *idm.User, authSourceName string) (ident connector.Identity)

func RegisterDexPydioConnector

func RegisterDexPydioConnector(name string, configProvider func() PydioConnectorConfig)

func RegisterWrapperConnectorMiddleware

func RegisterWrapperConnectorMiddleware(operation string, middleware WrapperConnectorMiddleware)

RegisterWrapperConnectorMiddleware appends a new connector middleware to the array of already existing middleware for this operation.

Types

type ApiConfig

type ApiConfig struct {
}

func (*ApiConfig) Open

func (c *ApiConfig) Open(logger logrus.FieldLogger) (connector.Connector, error)

func (*ApiConfig) OpenConnector

func (c *ApiConfig) OpenConnector(logger logrus.FieldLogger) (interface{}, error)

type ConnectorConfig

type ConnectorConfig struct {
	Type   string          `json:"type"`
	ID     int16           `json:"id"`
	Name   string          `json:"name"`
	IsLast bool            `json:islast`
	Config json.RawMessage `json:"config"`
}

type ConnectorList

type ConnectorList struct {
	Type      string `json:"type"`
	Name      string `json:"name"`
	ID        int16  `json:"id"`
	IsLast    bool   `json:islast`
	Connector interface {
		connector.Connector
		connector.PasswordConnector
		connector.RefreshConnector
	}
}

type PydioConnector

type PydioConnector struct {
	Type   string               `json:"type"`
	Name   string               `json:"name"`
	ID     int16                `json:"id"`
	IsLast bool                 `json:islast`
	Config PydioConnectorConfig `json:"config"`
}

PydioConnector is a magical type that can unmarshal YAML dynamically. The Type field determines the connector type, which is then customized for Config.

type PydioConnectorConfig

type PydioConnectorConfig interface {
	Open(logger logrus.FieldLogger) (connector.Connector, error)
}

PydioConnectorConfig provides an easy way to return a config struct depending on the connector type.

type WrapperConfig

type WrapperConfig struct {
	Connectors []ConnectorConfig `json:"pydioconnectors"`
}

func (*WrapperConfig) Open

func (*WrapperConfig) OpenConnector

type WrapperConnectorMiddleware

type WrapperConnectorMiddleware func(wrapperConnector WrapperConnectorProvider) WrapperConnectorProvider

type WrapperConnectorOperation

type WrapperConnectorOperation struct {
	OperationType string
	Scopes        connector.Scopes
	Login         string
	Password      string
	LoginError    bool

	ValidUsername string
	AuthSource    string
	User          *idm.User
	Identity      connector.Identity
}

WrapperConnectorOperation holds all necessary information to perform auth actions using the middleware pattern.

func ApplyWrapperConnectorMiddlewares

func ApplyWrapperConnectorMiddlewares(ctx context.Context, in *WrapperConnectorOperation, coreProvider WrapperConnectorProvider) (*WrapperConnectorOperation, error)

ApplyWrapperConnectorMiddlewares effectively calls each middleware that have been registered for this operation.

type WrapperConnectorProvider

type WrapperConnectorProvider func(ctx context.Context, in *WrapperConnectorOperation) (*WrapperConnectorOperation, error)

func WrapWithIdentity

func WrapWithIdentity(middleware WrapperConnectorProvider) WrapperConnectorProvider

WrapWithIdentity converts the op.User to an identity and stores it in the current operation.

func WrapWithIdmUser

func WrapWithIdmUser(middleware WrapperConnectorProvider) WrapperConnectorProvider

WrapWithIdmUser retrieves an IDM user with her login and adds it to the current operation.

func WrapWithPolicyCheck

func WrapWithPolicyCheck(middleware WrapperConnectorProvider) WrapperConnectorProvider

WrapWithPolicyCheck checks policies for the current user and updates passed operation.

func WrapWithUserLocks

func WrapWithUserLocks(middleware WrapperConnectorProvider) WrapperConnectorProvider

WrapWithUserLocks manages lock after too many fail attemps. It also reset the counter on login success.

Jump to

Keyboard shortcuts

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