v1.7.8 Latest Latest

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

Go to latest
Published: Dec 4, 2020 License: Apache-2.0 Imports: 12 Imported by: 30




View Source
const (
	// TokenURLSuffix ...
	TokenURLSuffix = "/oauth/token"
	// AuthURLSuffix ...
	AuthURLSuffix = "/oauth/authorize"
	// UserInfoURLSuffix ...
	UserInfoURLSuffix = "/userinfo"
	// UsersURLSuffix ...
	UsersURLSuffix = "/Users"


This section is empty.


This section is empty.


type Client

type Client interface {
	// PasswordAuth accepts username and password, return a token if it's valid.
	PasswordAuth(username, password string) (*oauth2.Token, error)
	// GetUserInfoByToken send the token to OIDC endpoint to get user info, currently it's also used to validate the token.
	GetUserInfo(token string) (*UserInfo, error)
	// SearchUser searches a user based on user name.
	SearchUser(name string) ([]*SearchUserEntry, error)
	// UpdateConfig updates the config of the current client
	UpdateConfig(cfg *ClientConfig) error

Client provides funcs to interact with UAA.

func NewDefaultClient

func NewDefaultClient(cfg *ClientConfig) (Client, error)

NewDefaultClient creates an instance of defaultClient.

type ClientConfig

type ClientConfig struct {
	ClientID      string
	ClientSecret  string
	Endpoint      string
	SkipTLSVerify bool
	// Absolut path for CA root used to communicate with UAA, only effective when skipTLSVerify set to false.
	CARootPath string

ClientConfig values to initialize UAA Client

type FakeClient

type FakeClient struct {
	Username string
	Password string

FakeClient is for test only

func (*FakeClient) GetUserInfo

func (fc *FakeClient) GetUserInfo(token string) (*UserInfo, error)

GetUserInfo ...

func (*FakeClient) PasswordAuth

func (fc *FakeClient) PasswordAuth(username, password string) (*oauth2.Token, error)

PasswordAuth ...

func (*FakeClient) SearchUser

func (fc *FakeClient) SearchUser(name string) ([]*SearchUserEntry, error)

SearchUser ...

func (*FakeClient) UpdateConfig

func (fc *FakeClient) UpdateConfig(cfg *ClientConfig) error

UpdateConfig ...

type SearchUserEmailEntry

type SearchUserEmailEntry struct {
	Value   string `json:"value"`
	Primary bool   `json:"primary"`

SearchUserEmailEntry ...

type SearchUserEntry

type SearchUserEntry struct {
	ID       string                 `json:"id"`
	ExtID    string                 `json:"externalId"`
	UserName string                 `json:"userName"`
	Emails   []SearchUserEmailEntry `json:"emails"`
	Groups   []interface{}

SearchUserEntry is the struct of an entry of user within search result.

type SearchUserRes

type SearchUserRes struct {
	Resources    []*SearchUserEntry `json:"resources"`
	TotalResults int                `json:"totalResults"`
	Schemas      []string           `json:"schemas"`

SearchUserRes is the struct to parse the result of search user API of UAA

type UserInfo

type UserInfo struct {
	UserID   string `json:"user_id"`
	Sub      string `json:"sub"`
	UserName string `json:"user_name"`
	Name     string `json:"name"`
	Email    string `json:"email"`

UserInfo represent the JSON object of a userinfo response from UAA. As the response varies, this struct will contain only a subset of attributes that may be used in Harbor


Path Synopsis

Jump to

Keyboard shortcuts

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