Versions in this module Expand all Collapse all v0 v0.1.0 Aug 21, 2022 Changes in this version + const AlgorithmES256 + const AlgorithmES384 + const AlgorithmES512 + const AlgorithmHS256 + const AlgorithmHS384 + const AlgorithmHS512 + const AlgorithmRS256 + const AlgorithmRS384 + const AlgorithmRS512 + const AuthTokenContextKey + const AuthTokenLocationContextKey + const ContextKeyHexaCorrelationID + const ContextKeyHexaRequestID + const ContextKeyHexaUser + const JwtContextKey + const TokenCookieFieldAuthToken + const TokenHeaderAuthorization + const TokenLocationCookie + const TokenLocationHeader + const TokenLocationSession + const TokenLocationUnknown + const TokenSessionFieldToken + var CurrentUserContextKey = "user" + var DefaultCorrelationIDConfig = CorrelationIDConfig + var DefaultProxyConfig = ProxyConfig + var DefaultRequestIDConfig = RequestIDConfig + var ErrTooManyRequests = hexa.NewError(http.StatusTooManyRequests, "lib.http.too_many_requests_error") + var HeaderCorrelationID = "X-Correlation-ID" + var SubContextKey = "sub" + func AuthMiddleware() echo.MiddlewareFunc + func AuthorizeRefreshToken(cfg AuthorizeRefreshTokenConfig) (user hexa.User, err error) + func CSRFSkipperByAuthTokenLocation(ctx echo.Context) bool + func CorrelationID() echo.MiddlewareFunc + func CorrelationIDWithConfig(config CorrelationIDConfig) echo.MiddlewareFunc + func CurrentUser(uf UserFinderBySub) echo.MiddlewareFunc + func CurrentUserBySub(uf UserFinderBySub) echo.MiddlewareFunc + func CurrentUserBySubWithConfig(cfg CurrentUserBySubConfig) echo.MiddlewareFunc + func CurrentUserWithConfig(cfg CurrentUserConfig) echo.MiddlewareFunc + func CurrentUserWithoutFetch() echo.MiddlewareFunc + func DebugMiddleware(e *echo.Echo) echo.MiddlewareFunc + func ExtractAuthToken(extractors ...TokenExtractor) echo.MiddlewareFunc + func ExtractTokenWithConfig(cfg ExtractTokenConfig) echo.MiddlewareFunc + func GenerateToken(u hexa.User, cfg GenerateTokenConfig) (token string, err error) + func GuestMiddleware() echo.MiddlewareFunc + func HTTPErrorHandler(l hlog.Logger, t hexa.Translator, debug bool) echo.HTTPErrorHandler + func HexaContext(logger hlog.Logger, translator hexa.Translator) echo.MiddlewareFunc + func HexaToEchoLogger(logger hlog.Logger, level string) echo.Logger + func IDAsSubjectGenerator(user hexa.User) (string, error) + func IPKeyExtractor(c echo.Context) (string, error) + func JwtClaimAuthorizer(cfg JwtClaimAuthorizerConfig) echo.MiddlewareFunc + func JwtErrorHandler(err error) error + func LimitBodySize(n int64) echo.MiddlewareFunc + func Metrics(cfg MetricsConfig) echo.MiddlewareFunc + func NewRenderer(pattern string) echo.Renderer + func NewSingleHostReverseProxyRewriteHost(target *url.URL) *httputil.ReverseProxy + func Proxy(balancer ProxyBalancer) echo.MiddlewareFunc + func ProxyWithConfig(config ProxyConfig) echo.MiddlewareFunc + func RateLimiter(cfg RateLimiterConfig) echo.MiddlewareFunc + func RateLimiterByIP(rl limiter.Store) echo.MiddlewareFunc + func Recover() echo.MiddlewareFunc + func RecoverWithConfig(skipper middleware.Skipper) echo.MiddlewareFunc + func RequestID() echo.MiddlewareFunc + func RequestIDWithConfig(config RequestIDConfig) echo.MiddlewareFunc + func ResourceAPI(group *echo.Group, resource any, prefix string, m ...echo.MiddlewareFunc) + func SetContextLogger(level string) echo.MiddlewareFunc + func SkipIfNotProvidedHeader(header string) middleware.Skipper + func Tracing(cfg TracingConfig) echo.MiddlewareFunc + func TracingDataFromUserContext() echo.MiddlewareFunc + func UserGateMiddleware(cfg GateMiddlewareConfig) echo.MiddlewareFunc + func Write(c echo.Context, reply hexa.Reply) error + func WriteWithOpts(c echo.Context, l hlog.Logger, t hexa.Translator, reply hexa.Reply) error + type AuthorizeRefreshTokenConfig struct + Authorizer TokenAuthorizer + Key any + SingingMethod jwt.SigningMethod + Token string + UserFinder UserFinderBySub + type CorrelationIDConfig struct + Generator func() string + Skipper middleware.Skipper + type CreateResource interface + Create func(c echo.Context) error + type CurrentUserBySubConfig struct + SubContextKey string + UserContextKey string + UserFinder UserFinderBySub + type CurrentUserConfig struct + ExtendJWT bool + JWTContextKey string + UserContextKey string + type DeleteResource interface + Delete func(c echo.Context) error + type EchoService struct + Address string + func (s *EchoService) HealthIdentifier() string + func (s *EchoService) HealthStatus(ctx context.Context) hexa.HealthStatus + func (s *EchoService) LivenessStatus(ctx context.Context) hexa.LivenessStatus + func (s *EchoService) ReadinessStatus(ctx context.Context) hexa.ReadinessStatus + func (s *EchoService) Run() error + func (s *EchoService) Shutdown(ctx context.Context) error + type ExtractTokenConfig struct + Extractors []TokenExtractor + Skipper middleware.Skipper + TokenContextKey string + TokenLocationContextKey string + type GateMiddlewareConfig struct + MustBeGuest bool + type GenerateTokenConfig struct + Claims jwt.MapClaims + ExpireTokenAfter time.Duration + Key any + SingingMethod jwt.SigningMethod + SubGenerator SubGenerator + type GetResource interface + Get func(c echo.Context) error + type JwtClaimAuthorizerConfig struct + Authorizer TokenAuthorizer + JWTContextKey string + Skipper middleware.Skipper + type KeyExtractor func(c echo.Context) (string, error) + type MetricsConfig struct + MeterProvider metric.MeterProvider + Skipper middleware.Skipper + type PatchResource interface + Patch func(c echo.Context) error + type ProxyBalancer interface + AddTarget func(*ProxyTarget) bool + Next func(echo.Context) *ProxyTarget + RemoveTarget func(string) bool + func NewRandomBalancer(targets []*ProxyTarget) ProxyBalancer + func NewRoundRobinBalancer(targets []*ProxyTarget) ProxyBalancer + type ProxyConfig struct + Balancer ProxyBalancer + ContextKey string + ReverseProxyProvider func(target *url.URL) *httputil.ReverseProxy + Rewrite map[string]string + Skipper middleware.Skipper + Transport http.RoundTripper + type ProxyTarget struct + Meta echo.Map + Name string + URL *url.URL + type QueryResource interface + Query func(c echo.Context) error + type RateLimiterConfig struct + KeyExtractor KeyExtractor + RateLimiter limiter.Store + Skipper middleware.Skipper + type RequestIDConfig struct + Generator func() string + Skipper middleware.Skipper + type SubGenerator func(user hexa.User) (string, error) + type Template struct + func (t *Template) Render(w io.Writer, name string, data any, c echo.Context) error + type TokenAuthorizer func(claims jwt.MapClaims) error + func AuthorizeAudience(aud string) TokenAuthorizer + type TokenExtractor func(ctx echo.Context) (string, TokenLocation, error) + func CookieTokenExtractor(cookieFieldName string) TokenExtractor + func HeaderAuthTokenExtractor(headerFieldName string) TokenExtractor + func SessionTokenExtractor(store sessions.Store, sessionName string, tokenField string) TokenExtractor + type TokenLocation int + type TracingConfig struct + Propagator propagation.TextMapPropagator + ServerName string + Skipper middleware.Skipper + TracerProvider trace.TracerProvider + type UpdateResource interface + Update func(c echo.Context) error + type UserFinderBySub func(ctx context.Context, sub string) (hexa.User, error)