middleware

package
v3.0.3 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2023 License: GPL-2.0 Imports: 16 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DEFAULT_LOGGER request.Logger

Functions

func AddLogger

func AddLogger(next router.Handler) router.Handler

func AddUserMiddleware

func AddUserMiddleware(f func(*request.Request) request.User) router.Middleware

Helper function to more easily add a user to the request.

func AllowContentType

func AllowContentType(contentTypes ...string) func(next router.Handler) router.Handler

AllowContentType is a middleware that checks the content type of the request body. If the content type is not allowed, the middleware will return a http.StatusUnsupportedMediaType error.

func AllowedHosts

func AllowedHosts(allowed_hosts ...string) func(next router.Handler) router.Handler

Check if the request.Host is in the allowed hosts list

func Cache

func Cache(maxAge int) func(next router.Handler) router.Handler

Set the cache headers for the response. This will enable caching for the specified amount of seconds.

func FormatMessage

func FormatMessage(r *request.Request, messageType string, format string, args ...any) string

Format the message, paired with the request IP and method.

func GZIP

func GZIP(next router.Handler) router.Handler

GZIP compresses the response using gzip compression.

func LoginRequiredMiddleware

func LoginRequiredMiddleware(notAuth func(r *request.Request)) func(next router.Handler) router.Handler

Middleware that only allows users who are authenticated to continue. By default, will call the notAuth function. Configure the AddUserMiddleware to change the default behavior.

func LoginRequiredRedirectMiddleware

func LoginRequiredRedirectMiddleware(nextURL string) func(next router.Handler) router.Handler

Middleware that only allows users who are authenticated to continue. By default, will always redirect. Set the following function to change the default behavior: Configure the AddUserMiddleware to change the default behavior.

func LogoutRequiredMiddleware

func LogoutRequiredMiddleware(isAuth func(r *request.Request)) func(next router.Handler) router.Handler

Middleware that only allows users who are not authenticated to continue By default, will never call the isAuth function. Set the following function to change the default behavior: Configure the AddUserMiddleware to change the default behavior.

func LogoutRequiredRedirectMiddleware

func LogoutRequiredRedirectMiddleware(nextURL string) func(next router.Handler) router.Handler

Middleware that only allows users who are not authenticated to continue By default, will never call the isAuth function. Set the following function to change the default behavior: Configure the AddUserMiddleware to change the default behavior.

func NoCache

func NoCache(next router.Handler) router.Handler

Set the cache headers for the response. This will disable caching.

func Printer

func Printer(next router.Handler) router.Handler

func PrinterFunc

func PrinterFunc(next router.Handler, out io.Writer) router.Handler

func RateLimiterMiddleware

func RateLimiterMiddleware(conf *RateLimitOptions) func(next router.Handler) router.Handler

Rate Limiter Middleware

func Recoverer

func Recoverer(next router.Handler) router.Handler

Recoverer recovers from panics and logs the error, if the logger was set.

Types

type RateLimitOptions

type RateLimitOptions struct {
	CookieName        string
	Type              RateLimitType
	RequestsPerSecond int
	BurstMultiplier   int
	CleanExpiry       time.Duration
	CleanInt          time.Duration
	LimitHandler      func(r *request.Request)
}

RateLimitOptions is a struct that holds the options for the rate limiter.

type RateLimitType

type RateLimitType int

Rate limit types.

const (
	RateLimitIP RateLimitType = iota
	RateLimitIP_Proxy
	RateLimitCookie
)

Rate limit types, used to determine what to rate limit with.

Directories

Path Synopsis
sessions

Jump to

Keyboard shortcuts

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