Skip to content

Commit a19195c

Browse files
authored
unexport as much as possible in the audit package (#28039)
1 parent 88975a6 commit a19195c

30 files changed

+429
-419
lines changed

audit/backend_file.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ const (
2020
optionMode = "mode"
2121
)
2222

23-
var _ Backend = (*FileBackend)(nil)
23+
var _ Backend = (*fileBackend)(nil)
2424

25-
type FileBackend struct {
25+
type fileBackend struct {
2626
*backend
2727
}
2828

@@ -34,7 +34,7 @@ func NewFileBackend(conf *BackendConfig, headersConfig HeaderFormatter) (be Back
3434
}
3535

3636
// newFileBackend creates a backend and configures all nodes including a file sink.
37-
func newFileBackend(conf *BackendConfig, headersConfig HeaderFormatter) (*FileBackend, error) {
37+
func newFileBackend(conf *BackendConfig, headersConfig HeaderFormatter) (*fileBackend, error) {
3838
if headersConfig == nil || reflect.ValueOf(headersConfig).IsNil() {
3939
return nil, fmt.Errorf("nil header formatter: %w", ErrInvalidParameter)
4040
}
@@ -60,7 +60,7 @@ func newFileBackend(conf *BackendConfig, headersConfig HeaderFormatter) (*FileBa
6060
if err != nil {
6161
return nil, err
6262
}
63-
b := &FileBackend{backend: bec}
63+
b := &fileBackend{backend: bec}
6464

6565
// normalize file path if configured for stdout
6666
if strings.EqualFold(filePath, stdout) {
@@ -89,9 +89,9 @@ func newFileBackend(conf *BackendConfig, headersConfig HeaderFormatter) (*FileBa
8989
return b, nil
9090
}
9191

92-
// configureSinkNode is used internally by FileBackend to create and configure the
92+
// configureSinkNode is used internally by fileBackend to create and configure the
9393
// sink node on the backend.
94-
func (b *FileBackend) configureSinkNode(name string, filePath string, format format, opt ...event.Option) error {
94+
func (b *fileBackend) configureSinkNode(name string, filePath string, format format, opt ...event.Option) error {
9595
name = strings.TrimSpace(name)
9696
if name == "" {
9797
return fmt.Errorf("name is required: %w", ErrExternalOptions)
@@ -143,7 +143,7 @@ func (b *FileBackend) configureSinkNode(name string, filePath string, format for
143143
}
144144

145145
// Reload will trigger the reload action on the sink node for this backend.
146-
func (b *FileBackend) Reload() error {
146+
func (b *fileBackend) Reload() error {
147147
for _, n := range b.nodeMap {
148148
if n.Type() == eventlogger.NodeTypeSink {
149149
return n.Reopen()

audit/backend_file_ce_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
)
1717

1818
// TestFileBackend_newFileBackend_fallback ensures that we get the correct errors
19-
// in CE when we try to enable a FileBackend with enterprise options like fallback
19+
// in CE when we try to enable a fileBackend with enterprise options like fallback
2020
// and filter.
2121
func TestFileBackend_newFileBackend_fallback(t *testing.T) {
2222
t.Parallel()
@@ -62,7 +62,7 @@ func TestFileBackend_newFileBackend_fallback(t *testing.T) {
6262
name := name
6363
tc := tc
6464
t.Run(name, func(t *testing.T) {
65-
be, err := newFileBackend(tc.backendConfig, &NoopHeaderFormatter{})
65+
be, err := newFileBackend(tc.backendConfig, &noopHeaderFormatter{})
6666

6767
if tc.isErrorExpected {
6868
require.Error(t, err)
@@ -97,13 +97,13 @@ func TestFileBackend_newFileBackend_FilterFormatterSink(t *testing.T) {
9797
Logger: hclog.NewNullLogger(),
9898
}
9999

100-
b, err := newFileBackend(backendConfig, &NoopHeaderFormatter{})
100+
b, err := newFileBackend(backendConfig, &noopHeaderFormatter{})
101101
require.Error(t, err)
102102
require.EqualError(t, err, "enterprise-only options supplied: invalid configuration")
103103

104104
// Try without filter option
105105
delete(cfg, "filter")
106-
b, err = newFileBackend(backendConfig, &NoopHeaderFormatter{})
106+
b, err = newFileBackend(backendConfig, &noopHeaderFormatter{})
107107
require.NoError(t, err)
108108

109109
require.Len(t, b.nodeIDList, 2)
@@ -133,14 +133,14 @@ func TestBackend_IsFallback(t *testing.T) {
133133
},
134134
}
135135

136-
be, err := newFileBackend(cfg, &NoopHeaderFormatter{})
136+
be, err := newFileBackend(cfg, &noopHeaderFormatter{})
137137
require.Error(t, err)
138138
require.EqualError(t, err, "enterprise-only options supplied: invalid configuration")
139139

140140
// Remove the option and try again
141141
delete(cfg.Config, "fallback")
142142

143-
be, err = newFileBackend(cfg, &NoopHeaderFormatter{})
143+
be, err = newFileBackend(cfg, &noopHeaderFormatter{})
144144
require.NoError(t, err)
145145
require.NotNil(t, be)
146146
require.Equal(t, false, be.IsFallback())

audit/backend_file_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func TestAuditFile_fileModeNew(t *testing.T) {
3838
SaltView: &logical.InmemStorage{},
3939
Logger: hclog.NewNullLogger(),
4040
}
41-
_, err = newFileBackend(backendConfig, &NoopHeaderFormatter{})
41+
_, err = newFileBackend(backendConfig, &noopHeaderFormatter{})
4242
require.NoError(t, err)
4343

4444
info, err := os.Stat(file)
@@ -71,7 +71,7 @@ func TestAuditFile_fileModeExisting(t *testing.T) {
7171
Logger: hclog.NewNullLogger(),
7272
}
7373

74-
_, err = newFileBackend(backendConfig, &NoopHeaderFormatter{})
74+
_, err = newFileBackend(backendConfig, &noopHeaderFormatter{})
7575
require.NoError(t, err)
7676

7777
info, err := os.Stat(f.Name())
@@ -105,7 +105,7 @@ func TestAuditFile_fileMode0000(t *testing.T) {
105105
Logger: hclog.NewNullLogger(),
106106
}
107107

108-
_, err = newFileBackend(backendConfig, &NoopHeaderFormatter{})
108+
_, err = newFileBackend(backendConfig, &noopHeaderFormatter{})
109109
require.NoError(t, err)
110110

111111
info, err := os.Stat(f.Name())
@@ -134,7 +134,7 @@ func TestAuditFile_EventLogger_fileModeNew(t *testing.T) {
134134
Logger: hclog.NewNullLogger(),
135135
}
136136

137-
_, err = newFileBackend(backendConfig, &NoopHeaderFormatter{})
137+
_, err = newFileBackend(backendConfig, &noopHeaderFormatter{})
138138
require.NoError(t, err)
139139

140140
info, err := os.Stat(file)
@@ -267,7 +267,7 @@ func TestFileBackend_newFileBackend(t *testing.T) {
267267
},
268268
MountPath: tc.mountPath,
269269
}
270-
b, err := newFileBackend(cfg, &NoopHeaderFormatter{})
270+
b, err := newFileBackend(cfg, &noopHeaderFormatter{})
271271

272272
if tc.wantErr {
273273
require.Error(t, err)

audit/backend_noop.go

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,17 @@ type noopWrapper struct {
3535
backend *NoopAudit
3636
}
3737

38-
// NoopAuditEventListener is a callback used by noopWrapper.Process() to notify
39-
// of each received audit event.
40-
type NoopAuditEventListener func(*AuditEvent)
41-
42-
func (n *NoopAudit) SetListener(listener NoopAuditEventListener) {
38+
// SetListener provides a callback func to the NoopAudit which can be invoked
39+
// during processing of the Event.
40+
//
41+
// Deprecated: SetListener should not be used in new tests.
42+
func (n *NoopAudit) SetListener(listener func(event *Event)) {
4343
n.listener = listener
4444
}
4545

46+
// NoopAudit only exists to allow legacy tests to continue working.
47+
//
48+
// Deprecated: NoopAudit should not be used in new tests.
4649
type NoopAudit struct {
4750
Config *BackendConfig
4851

@@ -68,16 +71,16 @@ type NoopAudit struct {
6871
nodeIDList []eventlogger.NodeID
6972
nodeMap map[eventlogger.NodeID]eventlogger.Node
7073

71-
listener NoopAuditEventListener
74+
listener func(event *Event)
7275
}
7376

74-
// NoopHeaderFormatter can be used within no-op audit devices to do nothing when
77+
// noopHeaderFormatter can be used within no-op audit devices to do nothing when
7578
// it comes to only allow configured headers to appear in the result.
7679
// Whatever is passed in will be returned (nil becomes an empty map) in lowercase.
77-
type NoopHeaderFormatter struct{}
80+
type noopHeaderFormatter struct{}
7881

79-
// ApplyConfig implements the relevant interface to make NoopHeaderFormatter an HeaderFormatter.
80-
func (f *NoopHeaderFormatter) ApplyConfig(_ context.Context, headers map[string][]string, _ Salter) (result map[string][]string, retErr error) {
82+
// ApplyConfig implements the relevant interface to make noopHeaderFormatter an HeaderFormatter.
83+
func (f *noopHeaderFormatter) ApplyConfig(_ context.Context, headers map[string][]string, _ Salter) (result map[string][]string, retErr error) {
8184
if len(headers) < 1 {
8285
return map[string][]string{}, nil
8386
}
@@ -95,6 +98,8 @@ func (f *NoopHeaderFormatter) ApplyConfig(_ context.Context, headers map[string]
9598
// NewNoopAudit should be used to create a NoopAudit as it handles creation of a
9699
// predictable salt and wraps eventlogger nodes so information can be retrieved on
97100
// what they've seen or formatted.
101+
//
102+
// Deprecated: NewNoopAudit only exists to allow legacy tests to continue working.
98103
func NewNoopAudit(config *BackendConfig) (*NoopAudit, error) {
99104
view := &logical.InmemStorage{}
100105

@@ -122,7 +127,7 @@ func NewNoopAudit(config *BackendConfig) (*NoopAudit, error) {
122127
nodeMap: make(map[eventlogger.NodeID]eventlogger.Node, 2),
123128
}
124129

125-
cfg, err := newFormatterConfig(&NoopHeaderFormatter{}, nil)
130+
cfg, err := newFormatterConfig(&noopHeaderFormatter{}, nil)
126131
if err != nil {
127132
return nil, err
128133
}
@@ -158,6 +163,8 @@ func NewNoopAudit(config *BackendConfig) (*NoopAudit, error) {
158163
// NoopAuditFactory should be used when the test needs a way to access bytes that
159164
// have been formatted by the pipeline during audit requests.
160165
// The records parameter will be repointed to the one used within the pipeline.
166+
//
167+
// Deprecated: NoopAuditFactory only exists to allow legacy tests to continue working.
161168
func NoopAuditFactory(records **[][]byte) Factory {
162169
return func(config *BackendConfig, _ HeaderFormatter) (Backend, error) {
163170
n, err := NewNoopAudit(config)
@@ -184,7 +191,7 @@ func (n *noopWrapper) Process(ctx context.Context, e *eventlogger.Event) (*event
184191
var err error
185192

186193
// We're expecting audit events since this is an audit device.
187-
a, ok := e.Payload.(*AuditEvent)
194+
a, ok := e.Payload.(*Event)
188195
if !ok {
189196
return nil, errors.New("cannot parse payload as an audit event")
190197
}
@@ -244,7 +251,7 @@ func (n *noopWrapper) Process(ctx context.Context, e *eventlogger.Event) (*event
244251
// formatted headers that would have made it to the logs via the sink node.
245252
// They only appear in requests.
246253
if a.Subtype == RequestType {
247-
reqEntry := &Entry{}
254+
reqEntry := &entry{}
248255
err = json.Unmarshal(b, &reqEntry)
249256
if err != nil {
250257
return nil, fmt.Errorf("unable to parse formatted audit entry data: %w", err)
@@ -336,6 +343,7 @@ func (n *NoopAudit) IsFallback() bool {
336343
return false
337344
}
338345

346+
// Deprecated: TestNoopAudit only exists to allow legacy tests to continue working.
339347
func TestNoopAudit(t *testing.T, path string, config map[string]string) *NoopAudit {
340348
cfg := &BackendConfig{
341349
Config: config,

audit/backend_socket.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ const (
1818
optionWriteTimeout = "write_timeout"
1919
)
2020

21-
var _ Backend = (*SocketBackend)(nil)
21+
var _ Backend = (*socketBackend)(nil)
2222

23-
type SocketBackend struct {
23+
type socketBackend struct {
2424
*backend
2525
}
2626

@@ -32,7 +32,7 @@ func NewSocketBackend(conf *BackendConfig, headersConfig HeaderFormatter) (be Ba
3232
}
3333

3434
// newSocketBackend creates a backend and configures all nodes including a socket sink.
35-
func newSocketBackend(conf *BackendConfig, headersConfig HeaderFormatter) (*SocketBackend, error) {
35+
func newSocketBackend(conf *BackendConfig, headersConfig HeaderFormatter) (*socketBackend, error) {
3636
if headersConfig == nil || reflect.ValueOf(headersConfig).IsNil() {
3737
return nil, fmt.Errorf("nil header formatter: %w", ErrInvalidParameter)
3838
}
@@ -78,7 +78,7 @@ func newSocketBackend(conf *BackendConfig, headersConfig HeaderFormatter) (*Sock
7878
return nil, err
7979
}
8080

81-
b := &SocketBackend{backend: bec}
81+
b := &socketBackend{backend: bec}
8282

8383
// Configure the sink.
8484
cfg, err := newFormatterConfig(headersConfig, conf.Config)
@@ -94,7 +94,7 @@ func newSocketBackend(conf *BackendConfig, headersConfig HeaderFormatter) (*Sock
9494
return b, nil
9595
}
9696

97-
func (b *SocketBackend) configureSinkNode(name string, address string, format format, opts ...event.Option) error {
97+
func (b *socketBackend) configureSinkNode(name string, address string, format format, opts ...event.Option) error {
9898
sinkNodeID, err := event.GenerateNodeID()
9999
if err != nil {
100100
return fmt.Errorf("error generating random NodeID for sink node: %w", err)
@@ -115,7 +115,7 @@ func (b *SocketBackend) configureSinkNode(name string, address string, format fo
115115
}
116116

117117
// Reload will trigger the reload action on the sink node for this backend.
118-
func (b *SocketBackend) Reload() error {
118+
func (b *socketBackend) Reload() error {
119119
for _, n := range b.nodeMap {
120120
if n.Type() == eventlogger.NodeTypeSink {
121121
return n.Reopen()

audit/backend_socket_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func TestSocketBackend_newSocketBackend(t *testing.T) {
114114
},
115115
MountPath: tc.mountPath,
116116
}
117-
b, err := newSocketBackend(cfg, &NoopHeaderFormatter{})
117+
b, err := newSocketBackend(cfg, &noopHeaderFormatter{})
118118

119119
if tc.wantErr {
120120
require.Error(t, err)

audit/backend_syslog.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ const (
1515
optionTag = "tag"
1616
)
1717

18-
var _ Backend = (*SyslogBackend)(nil)
18+
var _ Backend = (*syslogBackend)(nil)
1919

20-
type SyslogBackend struct {
20+
type syslogBackend struct {
2121
*backend
2222
}
2323

@@ -29,7 +29,7 @@ func NewSyslogBackend(conf *BackendConfig, headersConfig HeaderFormatter) (be Ba
2929
}
3030

3131
// newSyslogBackend creates a backend and configures all nodes including a socket sink.
32-
func newSyslogBackend(conf *BackendConfig, headersConfig HeaderFormatter) (*SyslogBackend, error) {
32+
func newSyslogBackend(conf *BackendConfig, headersConfig HeaderFormatter) (*syslogBackend, error) {
3333
if headersConfig == nil || reflect.ValueOf(headersConfig).IsNil() {
3434
return nil, fmt.Errorf("nil header formatter: %w", ErrInvalidParameter)
3535
}
@@ -68,7 +68,7 @@ func newSyslogBackend(conf *BackendConfig, headersConfig HeaderFormatter) (*Sysl
6868
return nil, err
6969
}
7070

71-
b := &SyslogBackend{backend: bec}
71+
b := &syslogBackend{backend: bec}
7272

7373
// Configure the sink.
7474
cfg, err := newFormatterConfig(headersConfig, conf.Config)
@@ -84,7 +84,7 @@ func newSyslogBackend(conf *BackendConfig, headersConfig HeaderFormatter) (*Sysl
8484
return b, nil
8585
}
8686

87-
func (b *SyslogBackend) configureSinkNode(name string, format format, opts ...event.Option) error {
87+
func (b *syslogBackend) configureSinkNode(name string, format format, opts ...event.Option) error {
8888
sinkNodeID, err := event.GenerateNodeID()
8989
if err != nil {
9090
return fmt.Errorf("error generating random NodeID for sink node: %w: %w", ErrInternal, err)
@@ -104,6 +104,6 @@ func (b *SyslogBackend) configureSinkNode(name string, format format, opts ...ev
104104
}
105105

106106
// Reload will trigger the reload action on the sink node for this backend.
107-
func (b *SyslogBackend) Reload() error {
107+
func (b *syslogBackend) Reload() error {
108108
return nil
109109
}

audit/backend_syslog_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func TestSyslogBackend_newSyslogBackend(t *testing.T) {
9797
},
9898
MountPath: tc.mountPath,
9999
}
100-
b, err := newSyslogBackend(cfg, &NoopHeaderFormatter{})
100+
b, err := newSyslogBackend(cfg, &noopHeaderFormatter{})
101101

102102
if tc.wantErr {
103103
require.Error(t, err)

0 commit comments

Comments
 (0)