5 Commits

Author SHA1 Message Date
Marc Boudreau
263614051d
Audit Logging Using go-eventlogger Under Experiment Flag (#22234)
* add hashfunc field to EntryFormatter struct and adjust NewEntryFormatter function and tests
* add HeaderAdjuster interface and require it in EntryFormatter
* adjust all references to NewEntryFormatter to include a HeaderAdjuster parameter
* replace use of hash function in AuditedHeadersConfig's ApplyConfig method with Salter interface instance
* export audit.NewEvent function and adjust function signature
* add eventlogger based handling in LogRequest
* adjust eventlogger.Broker according to number of backends
* record auditing metrics
* only send events if a pipeline is registered
* remove TODO comments
* remove unused struct and method
* move setup of audited headers earlier into Core's initialization
* adjust entry_formatter to properly handle request headers
* protect against potential segmentation fault
* moved common code out of both switch cases
* protect against case where a.Data.Request or a.Data.Request.Headers is nil

---------

Co-authored-by: Peter Wilson <peter.wilson@hashicorp.com>
2023-08-08 21:01:28 +01:00
Peter Wilson
30114d0038
Moved HeaderFormatter to an Option for NewEntryFormatter, updated tests (#22116) 2023-07-28 17:07:20 +01:00
Marc Boudreau
769fe0b67d
VAULT-17079: Adding Hash Function and HeaderAdjuster to EntryFormatter (#22042)
* add hashfunc field to EntryFormatter struct and adjust NewEntryFormatter function and tests

* add HeaderAdjuster interface and require it in EntryFormatter
dquote> adjust all references to NewEntryFormatter to include a HeaderAdjuster parameter

* replace use of hash function in AuditedHeadersConfig's ApplyConfig method with Salter interface instance

* fixup! replace use of hash function in AuditedHeadersConfig's ApplyConfig method with Salter interface instance

* review feedback

* Go doc typo

* add another test function

---------

Co-authored-by: Peter Wilson <peter.wilson@hashicorp.com>
2023-07-27 12:31:52 -04:00
Peter Wilson
050759f661
VAULT-17078: Implement Register and Deregister Audit Devices for EventLogger Framework (#21898)
* begin refactoring of event package into audit package

* audit options additions

* rename option structs

* Trying to remove 'audit' from the start of names.

* typo

* typo

* typo

* newEvent required params

* typo

* comments on noop sink

* more refactoring - merge json/jsonx formatters

* fix file backend and tests

* Moved unexported funcs to formatter, fixed file tests

* typos, comments, moved func

* fix corehelpers

* fix backends (syslog, socket)

* Moved some sinks back to generic event package.

* return of the file sink

* remove unneeded sink params/return vars

* Implement Register and Deregister Audit Devices for EventLogger Framework (#21940)

* add function to create StdoutSinkNode

* add boolean argument to audit Factory function

* create eventlogger nodes in backend factory functions

* simplify NewNoopSink function and remove DiscardSinkNode

* make the sanity test in the file backend mutually exclusive based on useEventLogger value

* remove test cases that no longer made sense and were failing

* NewFileSink attempts to open file for sanity check

* fix FileSink tests and update FileSink to remove discard, stdout but add /dev/null

* Moved WithPrefix from FileSink to EventFormatter

* move prefix in backend

* NewFormatterConfig and Options (tests fixed)

* Little tidy up

* add test where audit file is created with useEventLogger set to true

* only create eventlogger.Node instances when useEventLogger is true
fix failing test due to invalid string conversion of FileMode value

* moved variable definition to more appropriate scope

---------

Co-authored-by: Marc Boudreau <marc.boudreau@hashicorp.com>
2023-07-24 09:27:09 -04:00
Peter Wilson
fec766e91a
VAULT-17078: Audit types refactor (#22000)
* moved types to types.go
2023-07-21 11:37:05 -04:00