Documentation
¶
Index ¶
- Constants
- Variables
- func AddAuthentication(webAPI WebAPI, registryProvider registry.Provider, configSectionPath string, ...)
- func AddBasicAuth(webAPI WebAPI, userMap map[string]*users.UserData)
- func AddIPWhiteListAuth(webAPI WebAPI, config IPWhiteListAuthConfiguration)
- func AddNoneAuth(webAPI WebAPI)
- type AccessValidator
- type AuthConfiguration
- type AuthContext
- type AuthHandler
- type BasicAuthConfiguration
- type ClaimValidator
- type IPWhiteListAuthConfiguration
- type JWTAuth
- type JWTAuthConfiguration
- type MiddlewareValidator
- type StatusWebAPIModel
- type WaspClaims
- type WebAPI
Constants ¶
View Source
const ( AuthJWT = "jwt" AuthBasic = "basic" AuthIPWhitelist = "ip" AuthNone = "none" )
Variables ¶
View Source
var ( ErrJWTInvalidClaims = echo.NewHTTPError(http.StatusUnauthorized, "invalid jwt claims") ErrInvalidJWT = echo.NewHTTPError(http.StatusUnauthorized, "token is invalid") )
Errors
Functions ¶
func AddAuthentication ¶
func AddAuthentication(webAPI WebAPI, registryProvider registry.Provider, configSectionPath string, claimValidator ClaimValidator)
func AddIPWhiteListAuth ¶
func AddIPWhiteListAuth(webAPI WebAPI, config IPWhiteListAuthConfiguration)
func AddNoneAuth ¶
func AddNoneAuth(webAPI WebAPI)
Types ¶
type AccessValidator ¶
type AccessValidator func(validator ClaimValidator) bool
type AuthConfiguration ¶
type AuthConfiguration struct {
Scheme string `koanf:"scheme"`
AddRoutes bool `koanf:"addRoutes"`
JWTConfig JWTAuthConfiguration `koanf:"jwt"`
BasicAuthConfig BasicAuthConfiguration `koanf:"basic"`
IPWhitelistConfig IPWhiteListAuthConfiguration `koanf:"ip"`
}
type AuthContext ¶
func (*AuthContext) IsAllowedTo ¶
func (a *AuthContext) IsAllowedTo(validator ClaimValidator) bool
func (*AuthContext) IsAuthenticated ¶
func (a *AuthContext) IsAuthenticated() bool
func (*AuthContext) Scheme ¶
func (a *AuthContext) Scheme() string
type AuthHandler ¶
func (*AuthHandler) CrossAPIAuthHandler ¶
func (a *AuthHandler) CrossAPIAuthHandler(c echo.Context) error
type BasicAuthConfiguration ¶
type BasicAuthConfiguration struct {
UserName string `koanf:"username"`
}
type ClaimValidator ¶
type ClaimValidator func(claims *WaspClaims) bool
type IPWhiteListAuthConfiguration ¶
type IPWhiteListAuthConfiguration struct {
IPWhiteList []string `koanf:"whitelist"`
}
type JWTAuth ¶
type JWTAuth struct {
// contains filtered or unexported fields
}
func AddJWTAuth ¶
func AddJWTAuth(webAPI WebAPI, config JWTAuthConfiguration, privateKey []byte, userMap map[string]*users.UserData, claimValidator ClaimValidator) *JWTAuth
func NewJWTAuth ¶
func (*JWTAuth) IssueJWT ¶
func (j *JWTAuth) IssueJWT(username string, authClaims *WaspClaims) (string, error)
func (*JWTAuth) Middleware ¶
func (j *JWTAuth) Middleware(skipper middleware.Skipper, allow MiddlewareValidator) echo.MiddlewareFunc
type JWTAuthConfiguration ¶
type JWTAuthConfiguration struct {
DurationHours int `koanf:"durationHours"`
}
type MiddlewareValidator ¶
type MiddlewareValidator = func(c echo.Context, authContext *AuthContext) bool
type StatusWebAPIModel ¶
type StatusWebAPIModel struct {
// contains filtered or unexported fields
}
type WaspClaims ¶
type WaspClaims struct {
jwt.StandardClaims
Permissions map[string]bool `json:"permissions"`
}
func (*WaspClaims) HasPermission ¶
func (c *WaspClaims) HasPermission(permission string) bool
func (*WaspClaims) VerifySubject ¶
func (c *WaspClaims) VerifySubject(expected string) bool
type WebAPI ¶
type WebAPI interface {
GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
Use(middleware ...echo.MiddlewareFunc)
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.