Skip to content

Commit eb64183

Browse files
committed
PR feedback
1 parent 62493f0 commit eb64183

File tree

5 files changed

+45
-20
lines changed

5 files changed

+45
-20
lines changed

internal/config/config.go

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -889,7 +889,6 @@ func processOtlpReceivers(tlsConfig *OtlpTLSConfig) error {
889889
func resolveExtensions() Extensions {
890890
var health *Health
891891
var headersSetter *HeadersSetter
892-
var tokenValue string
893892

894893
if isHealthExtensionSet() {
895894
health = &Health{
@@ -919,16 +918,12 @@ func resolveExtensions() Extensions {
919918
}
920919

921920
if headersSetter != nil {
922-
tokenValue = headersSetter.Headers[0].Value
923-
}
924-
925-
_, err := os.Stat(tokenValue)
926-
if err == nil {
927-
token, fileErr := file.ReadFromFile(tokenValue)
928-
if fileErr != nil {
929-
slog.Error("error reading from file", "error", fileErr)
921+
token, err := getToken(headersSetter)
922+
if err != nil {
923+
slog.Error("error getting token from config", "error", err)
924+
} else {
925+
headersSetter.Headers[0].Value = token
930926
}
931-
headersSetter.Headers[0].Value = token
932927
}
933928

934929
return Extensions{
@@ -937,6 +932,24 @@ func resolveExtensions() Extensions {
937932
}
938933
}
939934

935+
func getToken(headersSetter *HeadersSetter) (string, error) {
936+
var err error
937+
938+
token := headersSetter.Headers[0].Value
939+
if token == "" {
940+
filePath := headersSetter.Headers[0].FilePath
941+
942+
token, err = file.ReadFromFile(filePath)
943+
if err != nil {
944+
return "", err
945+
}
946+
947+
return token, nil
948+
}
949+
950+
return token, nil
951+
}
952+
940953
func isHealthExtensionSet() bool {
941954
return viperInstance.IsSet(CollectorExtensionsHealthKey) ||
942955
(viperInstance.IsSet(CollectorExtensionsHealthServerHostKey) &&

internal/config/config_test.go

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -641,22 +641,32 @@ func TestValidateYamlFile(t *testing.T) {
641641
func TestResolveExtensions(t *testing.T) {
642642
tests := []struct {
643643
name string
644-
input string
644+
token string
645+
path string
645646
expected string
646647
}{
647648
{
648-
name: "Test 1: Header value is a valid token",
649-
input: "super-secret-token",
649+
name: "Test 1: User includes only token value header",
650+
token: "super-secret-token",
651+
path: "",
650652
expected: "super-secret-token",
651653
},
652654
{
653-
name: "Test 2: Header value is a valid token path",
654-
input: "testdata/nginx-token.crt",
655+
name: "Test 2: User includes only filepath header",
656+
token: "",
657+
path: "testdata/nginx-token.crt",
655658
expected: "super-secret-token",
656659
},
657660
{
658-
name: "Test 3: Header value is empty",
659-
input: "",
661+
name: "Test 3: User includes both token and filepath header",
662+
token: "very-secret-token",
663+
path: "testdata/nginx-token.crt",
664+
expected: "very-secret-token",
665+
},
666+
{
667+
name: "Test 4: User includes neither token nor filepath header",
668+
token: "",
669+
path: "",
660670
expected: "",
661671
},
662672
}
@@ -669,7 +679,7 @@ func TestResolveExtensions(t *testing.T) {
669679
tempFile := helpers.CreateFileWithErrorCheck(t, tempDir, "nginx-agent.conf")
670680
defer helpers.RemoveFileWithErrorCheck(t, tempFile.Name())
671681

672-
confContent := []byte(conf.GetAgentConfigWithToken(tt.input))
682+
confContent := []byte(conf.GetAgentConfigWithToken(tt.token, tt.path))
673683
_, writeErr := tempFile.Write(confContent)
674684
require.NoError(t, writeErr)
675685

internal/config/types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ type (
139139
Value string `yaml:"value" mapstructure:"value"`
140140
DefaultValue string `yaml:"default_value" mapstructure:"default_value"`
141141
FromContext string `yaml:"from_context" mapstructure:"from_context"`
142+
FilePath string `yaml:"file_path" mapstructure:"file_path"`
142143
}
143144

144145
DebugExporter struct{}

test/config/agent/nginx-agent-with-token.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ collector:
88
- action: insert
99
key: "authorization"
1010
value: %s
11+
file_path: %s

test/config/nginx_config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,6 @@ func GetNginxConfigWithMultipleSSLCerts(errorLogFile, accessLogFile, certFile1,
5959
return fmt.Sprintf(embedNginxConfWithMultipleSSLCerts, errorLogFile, accessLogFile, certFile1, certFile2)
6060
}
6161

62-
func GetAgentConfigWithToken(token string) string {
63-
return fmt.Sprintf(agentConfigWithToken, token)
62+
func GetAgentConfigWithToken(token, path string) string {
63+
return fmt.Sprintf(agentConfigWithToken, token, path)
6464
}

0 commit comments

Comments
 (0)