Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions cmd/src/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ var (
// The following arguments are deprecated which is why they are no longer documented
configPath = flag.String("config", "", "")
endpoint = flag.String("endpoint", "", "")

errConfigMerge = errors.New("when using a configuration file, zero or all environment variables must be set")
errConfigAuthorizationConflict = errors.New("when passing an 'Authorization' additional headers, SRC_ACCESS_TOKEN must never be set")
)

// commands contains all registered subcommands.
Expand Down Expand Up @@ -154,6 +157,11 @@ func readConfig() (*config, error) {
}

cfg.AdditionalHeaders = parseAdditionalHeaders()
// Ensure that we're not clashing additonal headers
_, hasAuthorizationAdditonalHeader := cfg.AdditionalHeaders["authorization"]
if cfg.AccessToken != "" && hasAuthorizationAdditonalHeader {
return nil, errConfigAuthorizationConflict
}

// Lastly, apply endpoint flag if set
if endpoint != nil && *endpoint != "" {
Expand All @@ -168,5 +176,3 @@ func readConfig() (*config, error) {
func cleanEndpoint(urlStr string) string {
return strings.TrimSuffix(urlStr, "/")
}

var errConfigMerge = errors.New("when using a configuration file, zero or all environment variables must be set")
7 changes: 7 additions & 0 deletions cmd/src/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,13 @@ func TestReadConfig(t *testing.T) {
AdditionalHeaders: map[string]string{"foo-bar": "bar-baz", "foo": "bar"},
},
},
{
name: "additional headers SRC_HEADERS_AUTHORIZATION and SRC_ACCESS_TOKEN",
envToken: "abc",
envEndpoint: "https://override.com",
envHeaders: "Authorization:Bearer",
wantErr: errConfigAuthorizationConflict.Error(),
},
}

for _, test := range tests {
Expand Down