Fix host/method rule matching + tests

This commit is contained in:
Thom Seddon
2019-05-07 14:16:38 +01:00
parent 6f3ac5efe5
commit d1b12e4ffb
3 changed files with 151 additions and 18 deletions

View File

@ -28,9 +28,9 @@ func (s *Server) buildRoutes() {
// Let's build a router
for name, rule := range config.Rules {
if rule.Action == "allow" {
s.router.AddRoute(rule.Rule, 1, s.AllowHandler(name))
s.router.AddRoute(rule.formattedRule(), 1, s.AllowHandler(name))
} else {
s.router.AddRoute(rule.Rule, 1, s.AuthHandler(name))
s.router.AddRoute(rule.formattedRule(), 1, s.AuthHandler(name))
}
}
@ -47,6 +47,8 @@ func (s *Server) buildRoutes() {
func (s *Server) RootHandler(w http.ResponseWriter, r *http.Request) {
// Modify request
r.Method = r.Header.Get("X-Forwarded-Method")
r.Host = r.Header.Get("X-Forwarded-Host")
r.URL, _ = url.Parse(r.Header.Get("X-Forwarded-Uri"))
// Pass to mux