mirror of
https://github.com/portainer/portainer.git
synced 2025-07-19 13:29:41 +02:00
fix(proxy): remove code duplication BE-11627 (#644)
This commit is contained in:
parent
2c37f32fa6
commit
730c1115ce
6 changed files with 9 additions and 10 deletions
|
@ -52,7 +52,7 @@ func (factory *ProxyFactory) NewAgentProxy(endpoint *portainer.Endpoint) (*Proxy
|
||||||
endpointURL.Scheme = "https"
|
endpointURL.Scheme = "https"
|
||||||
}
|
}
|
||||||
|
|
||||||
proxy := newSingleHostReverseProxyWithHostHeader(endpointURL)
|
proxy := NewSingleHostReverseProxyWithHostHeader(endpointURL)
|
||||||
|
|
||||||
proxy.Transport = agent.NewTransport(factory.signatureService, httpTransport)
|
proxy.Transport = agent.NewTransport(factory.signatureService, httpTransport)
|
||||||
|
|
||||||
|
@ -63,8 +63,7 @@ func (factory *ProxyFactory) NewAgentProxy(endpoint *portainer.Endpoint) (*Proxy
|
||||||
Port: 0,
|
Port: 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
err = proxyServer.start()
|
if err := proxyServer.start(); err != nil {
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrap(err, "failed starting proxy server")
|
return nil, errors.Wrap(err, "failed starting proxy server")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ func newAzureProxy(endpoint *portainer.Endpoint, dataStore dataservices.DataStor
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
proxy := newSingleHostReverseProxyWithHostHeader(remoteURL)
|
proxy := NewSingleHostReverseProxyWithHostHeader(remoteURL)
|
||||||
proxy.Transport = azure.NewTransport(&endpoint.AzureCredentials, dataStore, endpoint)
|
proxy.Transport = azure.NewTransport(&endpoint.AzureCredentials, dataStore, endpoint)
|
||||||
return proxy, nil
|
return proxy, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,7 @@ func (factory *ProxyFactory) newDockerHTTPProxy(endpoint *portainer.Endpoint) (h
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
proxy := newSingleHostReverseProxyWithHostHeader(endpointURL)
|
proxy := NewSingleHostReverseProxyWithHostHeader(endpointURL)
|
||||||
proxy.Transport = dockerTransport
|
proxy.Transport = dockerTransport
|
||||||
return proxy, nil
|
return proxy, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ func newGitlabProxy(uri string) (http.Handler, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
proxy := newSingleHostReverseProxyWithHostHeader(url)
|
proxy := NewSingleHostReverseProxyWithHostHeader(url)
|
||||||
proxy.Transport = gitlab.NewTransport()
|
proxy.Transport = gitlab.NewTransport()
|
||||||
return proxy, nil
|
return proxy, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ func (factory *ProxyFactory) newKubernetesLocalProxy(endpoint *portainer.Endpoin
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
proxy := newSingleHostReverseProxyWithHostHeader(remoteURL)
|
proxy := NewSingleHostReverseProxyWithHostHeader(remoteURL)
|
||||||
proxy.Transport = transport
|
proxy.Transport = transport
|
||||||
|
|
||||||
return proxy, nil
|
return proxy, nil
|
||||||
|
@ -73,7 +73,7 @@ func (factory *ProxyFactory) newKubernetesEdgeHTTPProxy(endpoint *portainer.Endp
|
||||||
}
|
}
|
||||||
|
|
||||||
endpointURL.Scheme = "http"
|
endpointURL.Scheme = "http"
|
||||||
proxy := newSingleHostReverseProxyWithHostHeader(endpointURL)
|
proxy := NewSingleHostReverseProxyWithHostHeader(endpointURL)
|
||||||
proxy.Transport = kubernetes.NewEdgeTransport(factory.dataStore, factory.signatureService, factory.reverseTunnelService, endpoint, tokenManager, factory.kubernetesClientFactory)
|
proxy.Transport = kubernetes.NewEdgeTransport(factory.dataStore, factory.signatureService, factory.reverseTunnelService, endpoint, tokenManager, factory.kubernetesClientFactory)
|
||||||
|
|
||||||
return proxy, nil
|
return proxy, nil
|
||||||
|
@ -104,7 +104,7 @@ func (factory *ProxyFactory) newKubernetesAgentHTTPSProxy(endpoint *portainer.En
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
proxy := newSingleHostReverseProxyWithHostHeader(remoteURL)
|
proxy := NewSingleHostReverseProxyWithHostHeader(remoteURL)
|
||||||
proxy.Transport = kubernetes.NewAgentTransport(factory.signatureService, tlsConfig, tokenManager, endpoint, factory.kubernetesClientFactory, factory.dataStore)
|
proxy.Transport = kubernetes.NewAgentTransport(factory.signatureService, tlsConfig, tokenManager, endpoint, factory.kubernetesClientFactory, factory.dataStore)
|
||||||
|
|
||||||
return proxy, nil
|
return proxy, nil
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
// newSingleHostReverseProxyWithHostHeader is based on NewSingleHostReverseProxy
|
// newSingleHostReverseProxyWithHostHeader is based on NewSingleHostReverseProxy
|
||||||
// from golang.org/src/net/http/httputil/reverseproxy.go and merely sets the Host
|
// from golang.org/src/net/http/httputil/reverseproxy.go and merely sets the Host
|
||||||
// HTTP header, which NewSingleHostReverseProxy deliberately preserves.
|
// HTTP header, which NewSingleHostReverseProxy deliberately preserves.
|
||||||
func newSingleHostReverseProxyWithHostHeader(target *url.URL) *httputil.ReverseProxy {
|
func NewSingleHostReverseProxyWithHostHeader(target *url.URL) *httputil.ReverseProxy {
|
||||||
targetQuery := target.RawQuery
|
targetQuery := target.RawQuery
|
||||||
director := func(req *http.Request) {
|
director := func(req *http.Request) {
|
||||||
req.URL.Scheme = target.Scheme
|
req.URL.Scheme = target.Scheme
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue