jx: github.com/jenkins-x/jx/pkg/auth Index | Files | Directories

package auth

import "github.com/jenkins-x/jx/pkg/auth"

Index

Package Files

auth_config.go auth_config_service.go configmap_vault_config_handler.go constants.go file_config_handler.go gitcredentials_auth.go interfaces.go kube_config_handler.go memory_config_handler.go server.go types.go user_auth.go vault_config_handler.go

Constants

const (
    // AddonAuthConfigFile config file for addon auth credentials
    AddonAuthConfigFile = "addonAuth.yaml"
    // JenkinsAuthConfigFile config file for Jenkins auth credentials
    JenkinsAuthConfigFile = "jenkinsAuth.yaml"
    // IssuesAuthConfigFile config file for Issues auth credentials
    IssuesAuthConfigFile = "issuesAuth.yaml"
    // CreateAuthUserFromEnvironment config file for chat auth credentials
    ChatAuthConfigFile = "chatAuth.yaml"
    // GitAuthConfigFile config file for git auth credentials
    GitAuthConfigFile = "gitAuth.yaml"
    // ChartmuseumAuthConfigFile config file for chartmusuem auth credentials
    ChartmuseumAuthConfigFile = "chartmuseumAuth.yaml"
)
const (
    DefaultUsername = "dummy"
)

func ApiTokenEnv Uses

func ApiTokenEnv(prefix string) string

ApiTokenEnv builds the api token environment variable name

func BearerTokenEnv Uses

func BearerTokenEnv(prefix string) string

BearerTokenEnv builds the bearer token environment variable name

func IsConfigMapVaultAuth Uses

func IsConfigMapVaultAuth(configMapClient v1.ConfigMapInterface) bool

IsConfigMapVaultAuth checks if is able to find any auth config in a config map

func UsernameEnv Uses

func UsernameEnv(prefix string) string

UsernameEnv builds the username environment variable name

type AuthConfig Uses

type AuthConfig struct {
    Servers []*AuthServer `json:"servers"`

    DefaultUsername  string `json:"defaultusername"`
    CurrentServer    string `json:"currentserver"`
    PipeLineUsername string `json:"pipelineusername"`
    PipeLineServer   string `json:"pipelineserver"`
}

func LoadGitCredentialsAuth Uses

func LoadGitCredentialsAuth() (*AuthConfig, error)

LoadGitCredentialsAuth loads the git credentials from the `git/credentials` file in `$XDG_CONFIG_HOME/git/credentials` or in the `~/git/credentials` directory

func LoadGitCredentialsAuthFile Uses

func LoadGitCredentialsAuthFile(fileName string) (*AuthConfig, error)

LoadGitCredentialsAuthFile loads the git credentials file

func (*AuthConfig) AddServer Uses

func (c *AuthConfig) AddServer(server *AuthServer)

func (*AuthConfig) CurrentAuthServer Uses

func (c *AuthConfig) CurrentAuthServer() *AuthServer

CurrentAuthServer returns the current AuthServer configured in the configuration

func (*AuthConfig) CurrentUser Uses

func (c *AuthConfig) CurrentUser(server *AuthServer, inCluster bool) *UserAuth

func (*AuthConfig) DeleteServer Uses

func (c *AuthConfig) DeleteServer(url string)

DeleteServer deletes the server for the given URL and updates the current server if is the same with the deleted server

func (*AuthConfig) EditUserAuth Uses

func (c *AuthConfig) EditUserAuth(serverLabel string, auth *UserAuth, defaultUserName string, editUser, batchMode bool, fn PrintUserFn, handles util.IOFileHandles) error

EditUserAuth Lets the user input/edit the user auth

func (*AuthConfig) FindUserAuth Uses

func (c *AuthConfig) FindUserAuth(serverURL string, username string) *UserAuth

FindUserAuth finds the auth for the given user name if no username is specified and there is only one auth then return that else nil

func (*AuthConfig) FindUserAuths Uses

func (c *AuthConfig) FindUserAuths(serverURL string) []*UserAuth

func (*AuthConfig) GetOrCreateServer Uses

func (c *AuthConfig) GetOrCreateServer(url string) *AuthServer

func (*AuthConfig) GetOrCreateServerName Uses

func (c *AuthConfig) GetOrCreateServerName(url string, name string, kind string) *AuthServer

func (*AuthConfig) GetOrCreateUserAuth Uses

func (c *AuthConfig) GetOrCreateUserAuth(url string, username string) *UserAuth

func (*AuthConfig) GetPipelineAuth Uses

func (c *AuthConfig) GetPipelineAuth() (*AuthServer, *UserAuth)

GetPipelineAuth returns the current pipline server and user authentication

func (*AuthConfig) GetServer Uses

func (c *AuthConfig) GetServer(url string) *AuthServer

GetServerByName returns the server for the given URL or null if its not found

func (*AuthConfig) GetServerByKind Uses

func (c *AuthConfig) GetServerByKind(kind string) *AuthServer

GetServerByKind returns the server for the given kind or null if its not found

func (*AuthConfig) GetServerByName Uses

func (c *AuthConfig) GetServerByName(name string) *AuthServer

GetServerByName returns the server for the given name or null if its not found

func (*AuthConfig) GetServerNames Uses

func (c *AuthConfig) GetServerNames() []string

GetServerNames returns the name of the server currently in the configuration

func (*AuthConfig) GetServerURLs Uses

func (c *AuthConfig) GetServerURLs() []string

GetServerURLs returns the server URLs currently in the configuration

func (*AuthConfig) IndexOfServerName Uses

func (c *AuthConfig) IndexOfServerName(name string) int

func (*AuthConfig) Merge Uses

func (c *AuthConfig) Merge(o *AuthConfig)

Merge merges another auth config such as if loading git/credentials

func (*AuthConfig) PickOrCreateServer Uses

func (c *AuthConfig) PickOrCreateServer(fallbackServerURL string, serverURL string, message string, batchMode bool, handles util.IOFileHandles) (*AuthServer, error)

PickOrCreateServer picks the server to use defaulting to the current server

func (*AuthConfig) PickServer Uses

func (c *AuthConfig) PickServer(message string, batchMode bool, handles util.IOFileHandles) (*AuthServer, error)

func (*AuthConfig) PickServerUserAuth Uses

func (c *AuthConfig) PickServerUserAuth(server *AuthServer, message string, batchMode bool, org string, handles util.IOFileHandles) (*UserAuth, error)

PickServerAuth Pick the servers auth

func (*AuthConfig) SetUserAuth Uses

func (c *AuthConfig) SetUserAuth(url string, auth *UserAuth)

func (*AuthConfig) UpdatePipelineServer Uses

func (c *AuthConfig) UpdatePipelineServer(server *AuthServer, user *UserAuth)

UpdatePipelineServer updates the pipeline server in the configuration

type AuthConfigService Uses

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

AuthConfigService implements the generic features of the ConfigService because we don't have superclasses

func NewAuthConfigService Uses

func NewAuthConfigService(handler ConfigHandler) *AuthConfigService

NewAuthConfigService generates a AuthConfigService with a custom saver. This should not be used directly

func (*AuthConfigService) Config Uses

func (s *AuthConfigService) Config() *AuthConfig

Config gets the AuthConfig from the service

func (*AuthConfigService) DeleteServer Uses

func (s *AuthConfigService) DeleteServer(url string) error

DeleteServer removes the given server from the configuration

func (*AuthConfigService) LoadConfig Uses

func (s *AuthConfigService) LoadConfig() (*AuthConfig, error)

LoadConfig loads the configuration from the users JX config directory

func (*AuthConfigService) SaveConfig Uses

func (s *AuthConfigService) SaveConfig() error

SaveConfig saves the configuration to disk

func (*AuthConfigService) SaveUserAuth Uses

func (s *AuthConfigService) SaveUserAuth(url string, userAuth *UserAuth) error

SaveUserAuth saves the given user auth for the server url

func (*AuthConfigService) SetConfig Uses

func (s *AuthConfigService) SetConfig(c *AuthConfig)

SetConfig sets the AuthConfig object

type AuthServer Uses

type AuthServer struct {
    URL   string      `json:"url"`
    Users []*UserAuth `json:"users"`
    Name  string      `json:"name"`
    Kind  string      `json:"kind"`

    CurrentUser string `json:"currentuser"`
}

func (*AuthServer) CurrentAuth Uses

func (s *AuthServer) CurrentAuth() *UserAuth

CurrentAuth returns the current user auth, otherwise the first one

func (*AuthServer) DeleteUser Uses

func (s *AuthServer) DeleteUser(username string) error

func (*AuthServer) Description Uses

func (s *AuthServer) Description() string

func (*AuthServer) GetUserAuth Uses

func (s *AuthServer) GetUserAuth(username string) *UserAuth

func (*AuthServer) GetUsernames Uses

func (s *AuthServer) GetUsernames() []string

func (*AuthServer) HasUserAuths Uses

func (s *AuthServer) HasUserAuths() bool

HasUserAuths checks if a server has any user auth configured

func (*AuthServer) Label Uses

func (s *AuthServer) Label() string

type ConfigHandler Uses

type ConfigHandler interface {
    // LoadConfig loads the configuration from the users JX config directory
    LoadConfig() (*AuthConfig, error)
    //HasConfigFile() (bool, error)
    // SaveConfig saves the configuration
    SaveConfig(config *AuthConfig) error
}

ConfigHandler is an interface that handles an AuthConfig go:generate pegomock generate github.com/jenkins-x/jx/pkg/auth ConfigHandler -o mocks/auth_interface.go

type ConfigMapVaultConfigHandler Uses

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

ConfigMapVaultConfigHandler loads/save the config in a config map and the secrets in vault

func NewConfigMapVaultConfigHandler Uses

func NewConfigMapVaultConfigHandler(secretName string, configMapClient v1.ConfigMapInterface,
    vaultClient secreturl.Client) ConfigMapVaultConfigHandler

NewConfigMapVaultConfigHandler creates a new configmap/vault config handler

func (*ConfigMapVaultConfigHandler) LoadConfig Uses

func (c *ConfigMapVaultConfigHandler) LoadConfig() (*AuthConfig, error)

LoadConfig loads the auth config from a ConfigMap which stores in its data with a key equal with the secretName, also it resolves any secrets URIs by fetching their secret data from vault.

func (*ConfigMapVaultConfigHandler) SaveConfig Uses

func (c *ConfigMapVaultConfigHandler) SaveConfig(config *AuthConfig) error

SaveConfig should save config but we keep this read-only to avoid overwriting the existing values configure during installation.

type ConfigService Uses

type ConfigService interface {
    Config() *AuthConfig
    SetConfig(c *AuthConfig)
    // LoadConfig loads the configuration from the users JX config directory
    LoadConfig() (*AuthConfig, error)
    //HasConfigFile() (bool, error)
    // SaveConfig saves the configuration
    SaveConfig() error
    // SaveUserAuth saves the given user auth for the server url
    SaveUserAuth(url string, userAuth *UserAuth) error
    // DeleteServer removes the given server from the configuration
    DeleteServer(url string) error
}

ConfigService is a service for handing the config of auth tokens

func NewConfigmapVaultAuthConfigService Uses

func NewConfigmapVaultAuthConfigService(secretName string, configMapClient v1.ConfigMapInterface,
    secretURLClient secreturl.Client) ConfigService

NewConfigmapVaultAuthConfigService creates a new config service that load the config from a configmap and resolve the secrets URIs from vault

func NewFileAuthConfigService Uses

func NewFileAuthConfigService(filename string, useGitCredentialsFile bool) (ConfigService, error)

NewFileAuthConfigService creates a new file config service

func NewKubeAuthConfigService Uses

func NewKubeAuthConfigService(client kubernetes.Interface, namespace string, serverKind string, serviceKind string) ConfigService

NewKubeAuthConfigService creates a config services that loads/stores the auth config from a Kubernetes secret

func NewMemoryAuthConfigService Uses

func NewMemoryAuthConfigService() ConfigService

NewMemoryAuthConfigService creates a new memory based auth service

func NewVaultAuthConfigService Uses

func NewVaultAuthConfigService(secretName string, vaultClient vault.Client) ConfigService

NewVaultAuthConfigService creates a new config service that loads/saves the auth config form/into vault

type FileAuthConfigHandler Uses

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

FileAuthConfigHandler is a config handlerthat loads/saves the auth config from/to the local filesystem

func (*FileAuthConfigHandler) LoadConfig Uses

func (s *FileAuthConfigHandler) LoadConfig() (*AuthConfig, error)

LoadConfig loads the configuration from the users JX config directory

func (*FileAuthConfigHandler) SaveConfig Uses

func (s *FileAuthConfigHandler) SaveConfig(config *AuthConfig) error

SaveConfig saves the configuration to disk

type KubeAuthConfigHandler Uses

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

KubeAuthConfigHandler loads/save the auth config from/into a kubernetes secret

func NewKubeAuthConfigHandler Uses

func NewKubeAuthConfigHandler(client kubernetes.Interface, namespace string, serverKind string, serviceKind string) KubeAuthConfigHandler

NewKubeAuthConfigHandler creates a handler which loads/stores the auth config from/into Kubernetes secrets

func (*KubeAuthConfigHandler) LoadConfig Uses

func (k *KubeAuthConfigHandler) LoadConfig() (*AuthConfig, error)

LoadConfig loads the config from kuberntes secrets

func (*KubeAuthConfigHandler) SaveConfig Uses

func (k *KubeAuthConfigHandler) SaveConfig(config *AuthConfig) error

SaveConfig saves the config into kuberntes secret

type MemoryAuthConfigHandler Uses

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

MemoryAuthConfigHandler loads/saves the auth config from/into memory

func (*MemoryAuthConfigHandler) LoadConfig Uses

func (m *MemoryAuthConfigHandler) LoadConfig() (*AuthConfig, error)

LoadConfig returns the current config from memory

func (*MemoryAuthConfigHandler) SaveConfig Uses

func (m *MemoryAuthConfigHandler) SaveConfig(config *AuthConfig) error

SaveConfig updates the config in memory

type PrintUserFn Uses

type PrintUserFn func(username string) error

PrintUserFn prints the use name

type UserAuth Uses

type UserAuth struct {
    Username    string `json:"username"`
    ApiToken    string `json:"apitoken"`
    BearerToken string `json:"bearertoken"`
    Password    string `json:"password,omitempty"`

    // GithubAppOwner if using GitHub Apps this represents the owner organisation/user which owns this token.
    // we need to maintain a different token per owner
    GithubAppOwner string `json:"appOwner,omitempty"`
}

func CreateAuthUserFromEnvironment Uses

func CreateAuthUserFromEnvironment(prefix string) UserAuth

CreateAuthUserFromEnvironment creates a user auth from environment variables

func (*UserAuth) IsInvalid Uses

func (a *UserAuth) IsInvalid() bool

IsInvalid returns true if the user auth has a valid token

type VaultAuthConfigHandler Uses

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

VaultAuthConfigHandler is a config handler that loads/saves the auth configs from/to Vault

func (*VaultAuthConfigHandler) LoadConfig Uses

func (v *VaultAuthConfigHandler) LoadConfig() (*AuthConfig, error)

LoadConfig loads the config from the vault

func (*VaultAuthConfigHandler) SaveConfig Uses

func (v *VaultAuthConfigHandler) SaveConfig(config *AuthConfig) error

SaveConfig saves the config to the vault

Directories

PathSynopsis
mocks

Package auth imports 18 packages (graph) and is imported by 26 packages. Updated 2019-11-12. Refresh now. Tools for package owners.