Peter Kurfer
d70ba748f5
- merge packages to get a more concise layout because plugins are no more and therefore there's not a lot to be exported - fix test logger - rework config parsing to be easier and more transparent - remove unnecessary APIs because dynamic endpoint handling is rather a won't implement
38 lines
908 B
Go
38 lines
908 B
Go
package http
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"net/http"
|
|
|
|
"gitlab.com/inetmock/inetmock/pkg/audit"
|
|
"gitlab.com/inetmock/inetmock/pkg/audit/details"
|
|
)
|
|
|
|
func EventFromRequest(request *http.Request, app audit.AppProtocol) audit.Event {
|
|
httpDetails := details.HTTP{
|
|
Method: request.Method,
|
|
Host: request.Host,
|
|
URI: request.RequestURI,
|
|
Proto: request.Proto,
|
|
Headers: request.Header,
|
|
}
|
|
|
|
ev := audit.Event{
|
|
Transport: audit.TransportProtocol_TCP,
|
|
Application: app,
|
|
ProtocolDetails: httpDetails,
|
|
}
|
|
|
|
if state, ok := tlsConnectionState(request.Context()); ok {
|
|
ev.TLS = &audit.TLSDetails{
|
|
Version: audit.TLSVersionToEntity(state.Version).String(),
|
|
CipherSuite: tls.CipherSuiteName(state.CipherSuite),
|
|
ServerName: state.ServerName,
|
|
}
|
|
}
|
|
|
|
ev.SetDestinationIPFromAddr(localAddr(request.Context()))
|
|
ev.SetSourceIPFromAddr(remoteAddr(request.Context()))
|
|
|
|
return ev
|
|
}
|