diff options
| author | James Elliott <james-d-elliott@users.noreply.github.com> | 2022-10-22 19:27:59 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-22 19:27:59 +1100 |
| commit | 69c4c02d03fb4fab591be2d3282fc3fd25d2f981 (patch) | |
| tree | 3cec66e8568d7b106443b79c3a158d03c0c0c705 /internal/storage/sql_provider_backend_mysql.go | |
| parent | 1ea29cb2c24b44d15dffed3964e41e56b32da02d (diff) | |
feat(storage): tls connection support (#4233)
This adds support to PostgreSQL and MySQL to connect via TLS via the standard TLS configuration options.
Diffstat (limited to 'internal/storage/sql_provider_backend_mysql.go')
| -rw-r--r-- | internal/storage/sql_provider_backend_mysql.go | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/internal/storage/sql_provider_backend_mysql.go b/internal/storage/sql_provider_backend_mysql.go index b0382ed7d..32cc7de16 100644 --- a/internal/storage/sql_provider_backend_mysql.go +++ b/internal/storage/sql_provider_backend_mysql.go @@ -9,6 +9,7 @@ import ( "github.com/go-sql-driver/mysql" "github.com/authelia/authelia/v4/internal/configuration/schema" + "github.com/authelia/authelia/v4/internal/utils" ) // MySQLProvider is a MySQL provider. @@ -19,7 +20,7 @@ type MySQLProvider struct { // NewMySQLProvider a MySQL provider. func NewMySQLProvider(config *schema.Configuration, caCertPool *x509.CertPool) (provider *MySQLProvider) { provider = &MySQLProvider{ - SQLProvider: NewSQLProvider(config, providerMySQL, providerMySQL, dsnMySQL(config.Storage.MySQL)), + SQLProvider: NewSQLProvider(config, providerMySQL, providerMySQL, dsnMySQL(config.Storage.MySQL, caCertPool)), } // All providers have differing SELECT existing table statements. @@ -31,7 +32,7 @@ func NewMySQLProvider(config *schema.Configuration, caCertPool *x509.CertPool) ( return provider } -func dsnMySQL(config *schema.MySQLStorageConfiguration) (dataSourceName string) { +func dsnMySQL(config *schema.MySQLStorageConfiguration, caCertPool *x509.CertPool) (dataSourceName string) { dsnConfig := mysql.NewConfig() switch { @@ -46,6 +47,12 @@ func dsnMySQL(config *schema.MySQLStorageConfiguration) (dataSourceName string) dsnConfig.Addr = fmt.Sprintf("%s:%d", config.Host, config.Port) } + if config.TLS != nil { + _ = mysql.RegisterTLSConfig("storage", utils.NewTLSConfig(config.TLS, caCertPool)) + + dsnConfig.TLSConfig = "storage" + } + switch config.Port { case 0: dsnConfig.Addr = config.Host |
