Fix audit-log encoding issue (CC-7337) (#20345)

* add changes

* added changelog

* change update

* CE chnages

* Removed gzip size fix

* fix changelog

* Update .changelog/20345.txt

Co-authored-by: Hans Hasselberg <hans@hashicorp.com>

* Adding comments

---------

Co-authored-by: Abhishek Sahu <abhishek.sahu@hashicorp.com>
Co-authored-by: Hans Hasselberg <hans@hashicorp.com>
Co-authored-by: srahul3 <rahulsharma@hashicorp.com>
This commit is contained in:
Ashesh Vidyut 2024-02-06 16:40:07 +05:30 committed by GitHub
parent 88b8a1cc36
commit cffb5d7c6e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 9 additions and 5 deletions

3
.changelog/20345.txt Normal file
View File

@ -0,0 +1,3 @@
```release-note:bug
audit-logs: **(Enterprise Only)** Fixes non ASCII characters in audit logs because of gzip.
```

View File

@ -188,7 +188,9 @@ func (s *HTTPHandlers) handler() http.Handler {
// Register the wrapper.
wrapper := func(resp http.ResponseWriter, req *http.Request) {
start := time.Now()
handler(resp, req)
// this method is implemented by different flavours of consul e.g. oss, ce. ent.
s.enterpriseRequest(resp, req, handler)
labels := []metrics.Label{{Name: "method", Value: req.Method}, {Name: "path", Value: path_label}}
metrics.MeasureSinceWithLabels([]string{"api", "http"}, start, labels)
@ -313,7 +315,6 @@ func (s *HTTPHandlers) handler() http.Handler {
h = mux
}
h = s.enterpriseHandler(h)
h = withRemoteAddrHandler(h)
s.h = &wrappedMux{
mux: mux,

View File

@ -95,9 +95,9 @@ func parseACLAuthMethodEnterpriseMeta(req *http.Request, _ *structs.ACLAuthMetho
return nil
}
// enterpriseHandler is a noop for the enterprise implementation. we pass the original back
func (s *HTTPHandlers) enterpriseHandler(next http.Handler) http.Handler {
return next
func (s *HTTPHandlers) enterpriseRequest(w http.ResponseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) {
// no special handling for CE. Calling the default handler with default params.
handler(w, req)
}
// uiTemplateDataTransform returns an optional uiserver.UIDataTransform to allow