mirror of
https://github.com/grafana/grafana.git
synced 2025-07-29 00:25:30 +08:00
Secure Elasticsearch datasources a bit (#6031)
Instead of allowing users to access the entire cluster, apply some sane restrictions. Change-Id: Ib2e93722bf2e39d700d4afa713ff49ec556f2fdf
This commit is contained in:
@ -104,6 +104,22 @@ func ProxyDataSourceRequest(c *middleware.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
proxyPath := c.Params("*")
|
proxyPath := c.Params("*")
|
||||||
|
|
||||||
|
if ds.Type == m.DS_ES {
|
||||||
|
if c.Req.Request.Method == "DELETE" {
|
||||||
|
c.JsonApiErr(403, "Deletes not allowed on proxied Elasticsearch datasource", nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if c.Req.Request.Method == "PUT" {
|
||||||
|
c.JsonApiErr(403, "Puts not allowed on proxied Elasticsearch datasource", nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if c.Req.Request.Method == "POST" && proxyPath != "_msearch" {
|
||||||
|
c.JsonApiErr(403, "Posts not allowed on proxied Elasticsearch datasource except on /_msearch", nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
proxy := NewReverseProxy(ds, proxyPath, targetUrl)
|
proxy := NewReverseProxy(ds, proxyPath, targetUrl)
|
||||||
proxy.Transport = dataProxyTransport
|
proxy.Transport = dataProxyTransport
|
||||||
proxy.ServeHTTP(c.Resp, c.Req.Request)
|
proxy.ServeHTTP(c.Resp, c.Req.Request)
|
||||||
|
Reference in New Issue
Block a user