Commit 1e94185f authored by Dr. Stefan Schimanski's avatar Dr. Stefan Schimanski

audit: fill in stage

parent 019003b9
...@@ -87,6 +87,9 @@ func WithAudit(handler http.Handler, requestContextMapper request.RequestContext ...@@ -87,6 +87,9 @@ func WithAudit(handler http.Handler, requestContextMapper request.RequestContext
return return
} }
ev.Stage = auditinternal.StageRequestReceived
sink.ProcessEvents(ev)
// intercept the status code // intercept the status code
longRunning := false longRunning := false
var longRunningSink audit.Sink var longRunningSink audit.Sink
...@@ -115,6 +118,7 @@ func WithAudit(handler http.Handler, requestContextMapper request.RequestContext ...@@ -115,6 +118,7 @@ func WithAudit(handler http.Handler, requestContextMapper request.RequestContext
} }
} }
ev.Stage = auditinternal.StageResponseComplete
sink.ProcessEvents(ev) sink.ProcessEvents(ev)
}() }()
handler.ServeHTTP(respWriter, req) handler.ServeHTTP(respWriter, req)
...@@ -152,17 +156,15 @@ type auditResponseWriter struct { ...@@ -152,17 +156,15 @@ type auditResponseWriter struct {
func (a *auditResponseWriter) processCode(code int) { func (a *auditResponseWriter) processCode(code int) {
a.once.Do(func() { a.once.Do(func() {
if a.sink != nil {
a.sink.ProcessEvents(a.event)
}
// for now we use the ResponseStatus as marker that it's the first or second event
// of a long running request. As soon as we have such a field in the event, we can
// change this.
if a.event.ResponseStatus == nil { if a.event.ResponseStatus == nil {
a.event.ResponseStatus = &metav1.Status{} a.event.ResponseStatus = &metav1.Status{}
} }
a.event.ResponseStatus.Code = int32(code) a.event.ResponseStatus.Code = int32(code)
a.event.Stage = auditinternal.StageResponseStarted
if a.sink != nil {
a.sink.ProcessEvents(a.event)
}
}) })
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment