From fc43ce657c91a7bcaaeb95c1e806b60dc3c6cc28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 1 Jun 2015 11:00:05 +0200 Subject: [PATCH] allow data source proxy to proxy requests over self signed https connections, Closes #2069 --- pkg/api/dataproxy.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkg/api/dataproxy.go b/pkg/api/dataproxy.go index 81318cdc536..11075294b66 100644 --- a/pkg/api/dataproxy.go +++ b/pkg/api/dataproxy.go @@ -1,9 +1,12 @@ package api import ( + "crypto/tls" + "net" "net/http" "net/http/httputil" "net/url" + "time" "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/middleware" @@ -11,6 +14,16 @@ import ( "github.com/grafana/grafana/pkg/util" ) +var dataProxyTransport = &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + Proxy: http.ProxyFromEnvironment, + Dial: (&net.Dialer{ + Timeout: 30 * time.Second, + KeepAlive: 30 * time.Second, + }).Dial, + TLSHandshakeTimeout: 10 * time.Second, +} + func NewReverseProxy(ds *m.DataSource, proxyPath string) *httputil.ReverseProxy { target, _ := url.Parse(ds.Url) @@ -56,5 +69,6 @@ func ProxyDataSourceRequest(c *middleware.Context) { proxyPath := c.Params("*") proxy := NewReverseProxy(&query.Result, proxyPath) + proxy.Transport = dataProxyTransport proxy.ServeHTTP(c.RW(), c.Req.Request) }