GoDoxy/src/route/middleware/middlewares.go

34 lines
754 B
Go

package middleware
import (
"fmt"
"strings"
)
var middlewares = map[string]*Middleware{
"set_x_forwarded": SetXForwarded, // nginx
"add_x_forwarded": AddXForwarded, // nginx
"trust_forward_header": AddXForwarded, // traefik alias
"redirect_http": RedirectHTTP,
}
func Get(name string) (middleware *Middleware, ok bool) {
middleware, ok = middlewares[name]
return
}
// initialize middleware names
var _ = func() (_ bool) {
names := make(map[*Middleware][]string)
for name, m := range middlewares {
names[m] = append(names[m], name)
}
for m, names := range names {
if len(names) > 1 {
m.name = fmt.Sprintf("%s (a.k.a. %s)", names[0], strings.Join(names[1:], ", "))
} else {
m.name = names[0]
}
}
return
}()