Conditionally overwrite TLS parameters for MySQL secrets engine (#9729)

* Conditionally overwrite TLS parameters in MySQL DSN

Overwrite MySQL TLS configuration in MySQL DSN only if have `tls_ca` or `tls_certificate_key` set
Current logic always overwrites it

* Add test for MySQL DSN with a valid TLS parameter in query string
This commit is contained in:
arnis 2020-08-18 01:30:15 +03:00 committed by GitHub
parent edc40a1767
commit 4deacf2b50
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 1 deletions

View File

@ -218,7 +218,9 @@ func (c *mySQLConnectionProducer) addTLStoDSN() (connURL string, err error) {
return "", fmt.Errorf("unable to parse connectionURL: %s", err)
}
if len(c.tlsConfigName) > 0 {
config.TLSConfig = c.tlsConfigName
}
connURL = config.FormatDSN()

View File

@ -45,6 +45,11 @@ func Test_addTLStoDSN(t *testing.T) {
tlsConfigName: "tlsTest101",
expectedResult: "user:pa?ssword?@tcp(localhost:3306)/test?tls=tlsTest101&foo=bar",
},
"tls, valid tls parameter in query string": {
rootUrl: "user:password@tcp(localhost:3306)/test?tls=true",
tlsConfigName: "",
expectedResult: "user:password@tcp(localhost:3306)/test?tls=true",
},
}
for name, test := range tests {