fix(event): Remove wrapper validation (#2032)

The wrapper is sometimes unset at the time when the
audit config is validated, so it is impossible for us
to validate that a valid wrapper is configured. The wrapper
is configured by later setup steps because of a dependency
on the eventer in our KMS setup.
This commit is contained in:
Johan Brandhorst-Satzkorn authored and GitHub committed 2022-04-20 17:42:39 -04:00
1 parent 1342bd0183
commit a1c656ca94
4 files changed
+6 -81

No files matched your search

+3
View File
@@ -211,6 +211,9 @@ func (b *Server) SetupEventing(logger hclog.Logger, serializationLock *sync.Mute
serializationLock,
serverName,
*opts.withEventerConfig,
// Note: this may be nil at this point, it is updated later on in SetupKMSes.
// There is a cyclic dependency between the eventer and the wrapper, so we instantiate
// the eventer with a nil wrapper until we have a wrapper to use.
event.WithAuditWrapper(opts.withEventWrapper),
event.WithGating(opts.withEventGating))
if err != nil {
+1 -8
View File
@@ -46,14 +46,7 @@ func (ac *AuditConfig) Validate() error {
return fmt.Errorf("%s: %w", op, err)
}
if ac.wrapper == nil {
for _, filterOperation := range ac.FilterOverrides {
switch filterOperation {
case EncryptOperation, HmacSha256Operation:
return fmt.Errorf("%s: missing wrapper and %s filter operation requires a wrapper: %w", op, filterOperation, ErrInvalidParameter)
}
}
}
// Note: we don't validate the wrapper here because it may not be set yet.
return nil
}
@@ -43,48 +43,10 @@ func TestAuditConfig_Validate(t *testing.T) {
wantIsError: ErrInvalidParameter,
wantErrContains: "invalid filter override operation (invalid-operation)",
},
{
name: "missing-wrapper-with-hmac-filter",
ac: &AuditConfig{
FilterOverrides: AuditFilterOperations{
SensitiveClassification: HmacSha256Operation,
},
},
wantIsError: ErrInvalidParameter,
wantErrContains: "hmac-sha256 filter operation requires a wrapper",
},
{
name: "missing-wrapper-with-encrypt-filter",
ac: &AuditConfig{
FilterOverrides: AuditFilterOperations{
SensitiveClassification: EncryptOperation,
},
},
wantIsError: ErrInvalidParameter,
wantErrContains: "encrypt filter operation requires a wrapper",
},
{
name: "valid-default",
ac: DefaultAuditConfig(),
},
{
name: "valid-with-required-wrapper-for-encrypt",
ac: &AuditConfig{
wrapper: testWrapper(t),
FilterOverrides: AuditFilterOperations{
SensitiveClassification: EncryptOperation,
},
},
},
{
name: "valid-with-required-wrapper-for-hmac",
ac: &AuditConfig{
wrapper: testWrapper(t),
FilterOverrides: AuditFilterOperations{
SensitiveClassification: HmacSha256Operation,
},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
@@ -115,12 +77,6 @@ func TestNewAuditConfig(t *testing.T) {
wantIsError error
wantErrContains string
}{
{
name: "missing-required-wrapper",
opts: []Option{WithFilterOperations(filterOps)},
wantIsError: ErrInvalidParameter,
wantErrContains: "missing wrapper",
},
{
name: "valid-default",
want: DefaultAuditConfig(),
+2 -29
View File
@@ -385,34 +385,7 @@ func Test_NewEventer(t *testing.T) {
wantErrContains string
}{
{
name: "missing-require-wrapper",
config: func() EventerConfig {
cfg := EventerConfig{
AuditEnabled: true,
Sinks: []*SinkConfig{
{
Name: "test",
EventTypes: []Type{AuditType},
Type: StderrSink,
Format: JSONHclogSinkFormat,
AuditConfig: &AuditConfig{
FilterOverrides: AuditFilterOperations{
SensitiveClassification: EncryptOperation,
},
},
},
},
}
return cfg
}(),
lock: testLock,
logger: testLogger,
serverName: "missing-required-wrapper",
wantErrIs: ErrInvalidParameter,
wantErrContains: "missing wrapper and encrypt filter operation requires a wrapper",
},
{
name: "valid-audit-config-with-wrapper",
name: "valid-audit-configr",
config: func() EventerConfig {
cfg := EventerConfig{
AuditEnabled: true,
@@ -435,7 +408,7 @@ func Test_NewEventer(t *testing.T) {
opts: []Option{WithAuditWrapper(twrapper)},
lock: testLock,
logger: testLogger,
serverName: "valid-audit-config-with-wrapper",
serverName: "valid-audit-config",
want: &Eventer{
logger: testLogger,
gatedQueueLock: new(sync.Mutex),