Documentation
¶
Index ¶
- Constants
- func AuthorizationHandler(c echo.Context) error
- func AuthorizationServerWellKnownHandler(c echo.Context) error
- func CreateServer() *echo.Echo
- func IndexHandler(c echo.Context) error
- func JWKHandler(c echo.Context) error
- func LoginPageHandler(c echo.Context) error
- func NewTokenHandler(c echo.Context) error
- func UserLoginHandler(c echo.Context) error
- type AppContext
- type AuthorizationCodeAuthorizer
- type ClientCredentialsAuthorizer
- type ClientRepository
- type Config
- type DB
- type GrantTypeAuthorizer
- type IClientRepo
- type IRequestTokenRepo
- type ITokenRepo
- type IUserRepo
- type JWKManager
- type KeyPair
- type NewUser
- type OAuthClient
- type RequestContext
- type RequestDataNewLogin
- type RequestDataNewToken
- type RequestQueryParamAuthorize
- type ResponseNewToken
- type TemplateRenderer
- type TokenRepository
- func (t *TokenRepository) GetUserIdForToken(authToken string) (string, error)
- func (t *TokenRepository) NewTokenRepositoryWithCtx(ctx context.Context) IRequestTokenRepo
- func (t *TokenRepository) RemoveToken(authToken string) error
- func (t *TokenRepository) SetAuthToken(userId string, authToken string) error
- type UserModel
- type UserRepository
- type WellKnownConfiguration
Constants ¶
View Source
const ( ResponseTypeAuthorizationCodeFlow = "code" ResponseTypeImplicitFlowIDToken = "id_token" ResponseTypeImplicitFlowToken = "token" ResponseTypeImplicitFlowBoth = "id_token token" )
Response Types
View Source
const ( EndpointWellKnown = "/.well-known/oauth-authorization-server" EndpointAuthorization = "/oauth/authorize" EndpointAuthorizationLogin = "/login" EndpointToken = "/oauth/token" EndpointIntrospection = "/oauth/introspection" EndpointRevocation = "/oauth/revocation" EndpointJWK = "/oauth/jwks.json" )
Endpoints
View Source
const ( GrantTypeAuthorizationCode = "authorization_code" GrantTypeClientCredentials = "client_credentials" )
Grant Types
View Source
const (
SubjectTypePublic = "public"
)
Subject Types
Variables ¶
This section is empty.
Functions ¶
func AuthorizationHandler ¶
func CreateServer ¶
func IndexHandler ¶
func JWKHandler ¶
func LoginPageHandler ¶
func NewTokenHandler ¶
func UserLoginHandler ¶
Types ¶
type AppContext ¶
type AppContext struct {
JWKManager *JWKManager
ClientRepo IClientRepo
UserRepo IUserRepo
TokenRepo ITokenRepo
// contains filtered or unexported fields
}
func NewAppContext ¶
func NewAppContext(defaultBuilders map[string]interface{}) *AppContext
func (*AppContext) Init ¶
func (ctx *AppContext) Init() error
type AuthorizationCodeAuthorizer ¶
type AuthorizationCodeAuthorizer struct {
// contains filtered or unexported fields
}
func (*AuthorizationCodeAuthorizer) GenerateJWT ¶
func (a *AuthorizationCodeAuthorizer) GenerateJWT(tokenData RequestDataNewToken) (ResponseNewToken, error)
type ClientCredentialsAuthorizer ¶
type ClientCredentialsAuthorizer struct {
// contains filtered or unexported fields
}
func (*ClientCredentialsAuthorizer) GenerateJWT ¶
func (a *ClientCredentialsAuthorizer) GenerateJWT(tokenData RequestDataNewToken) (ResponseNewToken, error)
type ClientRepository ¶
type ClientRepository struct {
// contains filtered or unexported fields
}
func NewClientRepository ¶
func NewClientRepository(db *DB) *ClientRepository
func (*ClientRepository) AddClient ¶
func (c *ClientRepository) AddClient(client OAuthClient, checkExists bool) error
func (*ClientRepository) AuthenticateClient ¶
func (c *ClientRepository) AuthenticateClient(clientId string, clientSecret string) error
func (*ClientRepository) GetClient ¶
func (c *ClientRepository) GetClient(clientId string) (OAuthClient, error)
type GrantTypeAuthorizer ¶
type GrantTypeAuthorizer interface {
GenerateJWT(tokenData RequestDataNewToken) (ResponseNewToken, error)
}
type IClientRepo ¶
type IClientRepo interface {
GetClient(clientId string) (OAuthClient, error)
AddClient(client OAuthClient, checkExists bool) error
AuthenticateClient(clientId string, clientSecret string) error
}
type IRequestTokenRepo ¶
type ITokenRepo ¶
type ITokenRepo interface {
IRequestTokenRepo
NewTokenRepositoryWithCtx(context.Context) IRequestTokenRepo
}
func NewTokenRepository ¶
func NewTokenRepository() ITokenRepo
type JWKManager ¶
type JWKManager struct {
// contains filtered or unexported fields
}
func NewJWKManager ¶
func NewJWKManager() *JWKManager
func (*JWKManager) GetSet ¶
func (m *JWKManager) GetSet() jose.JSONWebKeySet
func (*JWKManager) GetSignKey ¶
func (m *JWKManager) GetSignKey() *jose.JSONWebKey
func (*JWKManager) LoadKeys ¶
func (m *JWKManager) LoadKeys() error
type KeyPair ¶
type KeyPair struct {
Public jose.JSONWebKey
Private jose.JSONWebKey
}
type OAuthClient ¶
type RequestContext ¶
type RequestContext struct {
echo.Context
JWKManager *JWKManager
ClientRepo IClientRepo
UserRepo IUserRepo
TokenRepo IRequestTokenRepo
}
type RequestDataNewLogin ¶
type RequestDataNewToken ¶
type ResponseNewToken ¶
type TemplateRenderer ¶
type TemplateRenderer struct {
// contains filtered or unexported fields
}
type TokenRepository ¶
type TokenRepository struct {
// contains filtered or unexported fields
}
func (*TokenRepository) GetUserIdForToken ¶
func (t *TokenRepository) GetUserIdForToken(authToken string) (string, error)
func (*TokenRepository) NewTokenRepositoryWithCtx ¶
func (t *TokenRepository) NewTokenRepositoryWithCtx(ctx context.Context) IRequestTokenRepo
func (*TokenRepository) RemoveToken ¶
func (t *TokenRepository) RemoveToken(authToken string) error
func (*TokenRepository) SetAuthToken ¶
func (t *TokenRepository) SetAuthToken(userId string, authToken string) error
type UserRepository ¶
type UserRepository struct {
// contains filtered or unexported fields
}
func NewUserRepository ¶
func NewUserRepository(db *DB) *UserRepository
func (*UserRepository) AddUser ¶
func (c *UserRepository) AddUser(user NewUser, checkExists bool) error
func (*UserRepository) AuthenticateUser ¶
func (c *UserRepository) AuthenticateUser(username string, password string) error
type WellKnownConfiguration ¶
type WellKnownConfiguration struct {
Issuer string `json:"issuer"`
JWKsUri string `json:"jwks_uri,omitempty"`
AuthorizationEndpoint string `json:"authorization_endpoint"`
TokenEndpoint string `json:"token_endpoint,omitempty"`
SubjectTypesSupported []string `json:"subject_types_supported"`
ResponseTypesSupported []string `json:"response_types_supported"`
GrantTypesSupported []string `json:"grant_types_supported,omitempty"`
ScopesSupported []string `json:"scopes_supported,omitempty"`
ClaimsSupported []string `json:"claims_supported,omitempty"`
TokenEndpointAuthMethodsSupported []string `json:"token_endpoint_auth_methods_supported,omitempty"`
TokenEndpointAuthSigningAlgValuesSupported []string `json:"token_endpoint_auth_signing_alg_values_supported,omitempty"`
IntrospectionEndpoint string `json:"introspection_endpoint,omitempty"`
RevocationEndpoint string `json:"revocation_endpoint,omitempty"`
RegistrationEndpoint string `json:"registration_endpoint,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.