diff --git a/aws/external/shared_config_test.go b/aws/external/shared_config_test.go index b4ff87a13f1..cf4836d15db 100644 --- a/aws/external/shared_config_test.go +++ b/aws/external/shared_config_test.go @@ -287,6 +287,16 @@ func TestLoadSharedConfigFromFile(t *testing.T) { Err: nil, }, }, + { + Profile: "with_mixed_case_keys", + Expected: SharedConfig{ + Credentials: aws.Credentials{ + AccessKeyID: "accessKey", + SecretAccessKey: "secret", + Source: fmt.Sprintf("SharedConfigCredentials: %s", testConfigFilename), + }, + }, + }, } for i, c := range cases { diff --git a/aws/external/testdata/shared_config b/aws/external/testdata/shared_config index 9216ea4bcc6..bb322ccc809 100644 --- a/aws/external/testdata/shared_config +++ b/aws/external/testdata/shared_config @@ -74,3 +74,7 @@ s3_use_arn_region=true [endpoint_discovery] endpoint_discovery_enabled=true + +[with_mixed_case_keys] +aWs_AcCeSs_kEy_ID: accessKey +aWs_SecrEt_AccEsS_kEY: secret diff --git a/internal/ini/testdata/valid/mixed_case_keys b/internal/ini/testdata/valid/mixed_case_keys new file mode 100644 index 00000000000..83246f02590 --- /dev/null +++ b/internal/ini/testdata/valid/mixed_case_keys @@ -0,0 +1,4 @@ +[with_mixed_case_keys] +sTring_Value = secret +iNt_Value = 60 +flOAt_Value = 12.3 diff --git a/internal/ini/testdata/valid/mixed_case_keys_expected b/internal/ini/testdata/valid/mixed_case_keys_expected new file mode 100644 index 00000000000..ec363ca7f4d --- /dev/null +++ b/internal/ini/testdata/valid/mixed_case_keys_expected @@ -0,0 +1,7 @@ +{ + "with_mixed_case_keys": { + "int_value": 60, + "string_value": "secret", + "float_value": 12.3 + } +} diff --git a/internal/ini/testdata/valid/utf_8_profile_expected b/internal/ini/testdata/valid/utf_8_profile_expected index 601027d38d1..3cc185b4f88 100644 --- a/internal/ini/testdata/valid/utf_8_profile_expected +++ b/internal/ini/testdata/valid/utf_8_profile_expected @@ -1,6 +1,6 @@ { "ʃʉʍΡιξ": { - "ϰϪϧ": "Ϯϴϖ", + "ϰϫϧ": "Ϯϴϖ", "ϝϧ": "ϟΞ΅" } } diff --git a/internal/ini/visitor.go b/internal/ini/visitor.go index 94841c32443..7ad98653638 100644 --- a/internal/ini/visitor.go +++ b/internal/ini/visitor.go @@ -3,6 +3,7 @@ package ini import ( "fmt" "sort" + "strings" ) // Visitor is an interface used by walkers that will @@ -60,7 +61,7 @@ func (v *DefaultVisitor) VisitExpr(expr AST) error { return err } - t.values[key] = v + t.values[strings.ToLower(key)] = v default: return NewParseError(fmt.Sprintf("unsupported expression %v", expr)) }