mirror of
https://github.com/traefik/traefik.git
synced 2025-11-28 14:11:17 +01:00
Infinite entry point redirection.
This commit is contained in:
parent
f460c1990e
commit
ed65d00574
@ -952,7 +952,7 @@ func (s *Server) loadConfig(configurations types.Configurations, globalConfigura
|
|||||||
|
|
||||||
entryPoint := globalConfiguration.EntryPoints[entryPointName]
|
entryPoint := globalConfiguration.EntryPoints[entryPointName]
|
||||||
n := negroni.New()
|
n := negroni.New()
|
||||||
if entryPoint.Redirect != nil {
|
if entryPoint.Redirect != nil && entryPointName != entryPoint.Redirect.EntryPoint {
|
||||||
if redirectHandlers[entryPointName] != nil {
|
if redirectHandlers[entryPointName] != nil {
|
||||||
n.Use(redirectHandlers[entryPointName])
|
n.Use(redirectHandlers[entryPointName])
|
||||||
} else if handler, err := s.buildRedirectHandler(entryPointName, entryPoint.Redirect); err != nil {
|
} else if handler, err := s.buildRedirectHandler(entryPointName, entryPoint.Redirect); err != nil {
|
||||||
@ -1141,7 +1141,7 @@ func (s *Server) loadConfig(configurations types.Configurations, globalConfigura
|
|||||||
log.Infof("Configured IP Whitelists: %s", frontend.WhitelistSourceRange)
|
log.Infof("Configured IP Whitelists: %s", frontend.WhitelistSourceRange)
|
||||||
}
|
}
|
||||||
|
|
||||||
if frontend.Redirect != nil {
|
if frontend.Redirect != nil && entryPointName != frontend.Redirect.EntryPoint {
|
||||||
rewrite, err := s.buildRedirectHandler(entryPointName, frontend.Redirect)
|
rewrite, err := s.buildRedirectHandler(entryPointName, frontend.Redirect)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("Error creating Frontend Redirect: %v", err)
|
log.Errorf("Error creating Frontend Redirect: %v", err)
|
||||||
@ -1347,7 +1347,7 @@ func (s *Server) buildRedirect(entryPointName string) (string, string, error) {
|
|||||||
protocol = "https"
|
protocol = "https"
|
||||||
}
|
}
|
||||||
|
|
||||||
replacement := protocol + "://$1" + match[0] + "$2"
|
replacement := protocol + "://${1}" + match[0] + "${2}"
|
||||||
return defaultRedirectRegex, replacement, nil
|
return defaultRedirectRegex, replacement, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1071,7 +1071,7 @@ func TestServerBuildRedirect(t *testing.T) {
|
|||||||
"https": &configuration.EntryPoint{Address: ":443", TLS: &tls.TLS{}},
|
"https": &configuration.EntryPoint{Address: ":443", TLS: &tls.TLS{}},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedReplacement: "https://$1:443$2",
|
expectedReplacement: "https://${1}:443${2}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
desc: "Redirect endpoint http to http02 with HTTP protocol",
|
desc: "Redirect endpoint http to http02 with HTTP protocol",
|
||||||
@ -1082,7 +1082,7 @@ func TestServerBuildRedirect(t *testing.T) {
|
|||||||
"http02": &configuration.EntryPoint{Address: ":88"},
|
"http02": &configuration.EntryPoint{Address: ":88"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedReplacement: "http://$1:88$2",
|
expectedReplacement: "http://${1}:88${2}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
desc: "Redirect endpoint to non-existent entry point",
|
desc: "Redirect endpoint to non-existent entry point",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user