mirror of
https://github.com/grafana/grafana.git
synced 2024-11-22 08:56:43 -06:00
Merge branch 'feature/dataProxyAuditLog' of https://github.com/Ricky-N/grafana into Ricky-N-feature/dataProxyAuditLog
This commit is contained in:
commit
839eb97061
@ -47,6 +47,9 @@ root_url = %(protocol)s://%(domain)s:%(http_port)s/
|
||||
# Log web requests
|
||||
router_logging = false
|
||||
|
||||
# This enables data proxy logging, default is false
|
||||
data_proxy_logging = false
|
||||
|
||||
# the path relative working path
|
||||
static_root_path = public
|
||||
|
||||
|
@ -49,6 +49,9 @@
|
||||
# Log web requests
|
||||
;router_logging = false
|
||||
|
||||
# This enables query request audit logging, output at warn level, default is false
|
||||
;data_proxy_logging = false
|
||||
|
||||
# the path relative working path
|
||||
;static_root_path = public
|
||||
|
||||
|
@ -143,6 +143,7 @@ with Grafana admin permission.
|
||||
"protocol":"http",
|
||||
"root_url":"%(protocol)s://%(domain)s:%(http_port)s/",
|
||||
"router_logging":"true",
|
||||
"data_proxy_logging":"true",
|
||||
"static_root_path":"public"
|
||||
},
|
||||
"session":{
|
||||
|
@ -1,6 +1,8 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/http/httputil"
|
||||
"net/url"
|
||||
@ -8,6 +10,7 @@ import (
|
||||
|
||||
"github.com/grafana/grafana/pkg/api/cloudwatch"
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/log"
|
||||
"github.com/grafana/grafana/pkg/metrics"
|
||||
"github.com/grafana/grafana/pkg/middleware"
|
||||
m "github.com/grafana/grafana/pkg/models"
|
||||
@ -121,6 +124,24 @@ func ProxyDataSourceRequest(c *middleware.Context) {
|
||||
c.JsonApiErr(400, "Unable to load TLS certificate", err)
|
||||
return
|
||||
}
|
||||
|
||||
proxyLog(ds.Type, c)
|
||||
|
||||
proxy.ServeHTTP(c.Resp, c.Req.Request)
|
||||
c.Resp.Header().Del("Set-Cookie")
|
||||
}
|
||||
|
||||
func proxyLog(dataSourceType string, c *middleware.Context) {
|
||||
if setting.DataProxyLogging {
|
||||
auditLogger := log.New("data-proxy-log", "userid", c.UserId, "orgid", c.OrgId, "username", c.Login)
|
||||
|
||||
var body string
|
||||
if c.Req.Request.Body != nil {
|
||||
buffer, _ := ioutil.ReadAll(c.Req.Request.Body)
|
||||
c.Req.Request.Body = ioutil.NopCloser(bytes.NewBuffer(buffer))
|
||||
body = string(buffer)
|
||||
}
|
||||
|
||||
auditLogger.Info("Proxying incoming request", "datasource", dataSourceType, "uri", c.Req.RequestURI, "method", c.Req.Request.Method, "body", body)
|
||||
}
|
||||
}
|
||||
|
@ -66,6 +66,7 @@ var (
|
||||
SshPort int
|
||||
CertFile, KeyFile string
|
||||
RouterLogging bool
|
||||
DataProxyLogging bool
|
||||
StaticRootPath string
|
||||
EnableGzip bool
|
||||
EnforceDomain bool
|
||||
@ -491,6 +492,7 @@ func NewConfigContext(args *CommandLineArgs) error {
|
||||
HttpAddr = server.Key("http_addr").MustString(DEFAULT_HTTP_ADDR)
|
||||
HttpPort = server.Key("http_port").MustString("3000")
|
||||
RouterLogging = server.Key("router_logging").MustBool(false)
|
||||
DataProxyLogging = server.Key("data_proxy_logging").MustBool(false)
|
||||
EnableGzip = server.Key("enable_gzip").MustBool(false)
|
||||
EnforceDomain = server.Key("enforce_domain").MustBool(false)
|
||||
StaticRootPath = makeAbsolute(server.Key("static_root_path").String(), HomePath)
|
||||
|
Loading…
Reference in New Issue
Block a user