|
@@ -538,6 +538,7 @@ func TestFTPDBindingsFromEnv(t *testing.T) {
|
|
|
os.Setenv("SFTPGO_FTPD__BINDINGS__0__APPLY_PROXY_CONFIG", "f")
|
|
os.Setenv("SFTPGO_FTPD__BINDINGS__0__APPLY_PROXY_CONFIG", "f")
|
|
|
os.Setenv("SFTPGO_FTPD__BINDINGS__0__TLS_MODE", "2")
|
|
os.Setenv("SFTPGO_FTPD__BINDINGS__0__TLS_MODE", "2")
|
|
|
os.Setenv("SFTPGO_FTPD__BINDINGS__0__FORCE_PASSIVE_IP", "127.0.1.2")
|
|
os.Setenv("SFTPGO_FTPD__BINDINGS__0__FORCE_PASSIVE_IP", "127.0.1.2")
|
|
|
|
|
+ os.Setenv("SFTPGO_FTPD__BINDINGS__0__TLS_CIPHER_SUITES", "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256")
|
|
|
os.Setenv("SFTPGO_FTPD__BINDINGS__9__ADDRESS", "127.0.1.1")
|
|
os.Setenv("SFTPGO_FTPD__BINDINGS__9__ADDRESS", "127.0.1.1")
|
|
|
os.Setenv("SFTPGO_FTPD__BINDINGS__9__PORT", "2203")
|
|
os.Setenv("SFTPGO_FTPD__BINDINGS__9__PORT", "2203")
|
|
|
os.Setenv("SFTPGO_FTPD__BINDINGS__9__APPLY_PROXY_CONFIG", "t")
|
|
os.Setenv("SFTPGO_FTPD__BINDINGS__9__APPLY_PROXY_CONFIG", "t")
|
|
@@ -551,6 +552,7 @@ func TestFTPDBindingsFromEnv(t *testing.T) {
|
|
|
os.Unsetenv("SFTPGO_FTPD__BINDINGS__0__APPLY_PROXY_CONFIG")
|
|
os.Unsetenv("SFTPGO_FTPD__BINDINGS__0__APPLY_PROXY_CONFIG")
|
|
|
os.Unsetenv("SFTPGO_FTPD__BINDINGS__0__TLS_MODE")
|
|
os.Unsetenv("SFTPGO_FTPD__BINDINGS__0__TLS_MODE")
|
|
|
os.Unsetenv("SFTPGO_FTPD__BINDINGS__0__FORCE_PASSIVE_IP")
|
|
os.Unsetenv("SFTPGO_FTPD__BINDINGS__0__FORCE_PASSIVE_IP")
|
|
|
|
|
+ os.Unsetenv("SFTPGO_FTPD__BINDINGS__0__TLS_CIPHER_SUITES")
|
|
|
os.Unsetenv("SFTPGO_FTPD__BINDINGS__9__ADDRESS")
|
|
os.Unsetenv("SFTPGO_FTPD__BINDINGS__9__ADDRESS")
|
|
|
os.Unsetenv("SFTPGO_FTPD__BINDINGS__9__PORT")
|
|
os.Unsetenv("SFTPGO_FTPD__BINDINGS__9__PORT")
|
|
|
os.Unsetenv("SFTPGO_FTPD__BINDINGS__9__APPLY_PROXY_CONFIG")
|
|
os.Unsetenv("SFTPGO_FTPD__BINDINGS__9__APPLY_PROXY_CONFIG")
|
|
@@ -570,12 +572,16 @@ func TestFTPDBindingsFromEnv(t *testing.T) {
|
|
|
require.Equal(t, 2, bindings[0].TLSMode)
|
|
require.Equal(t, 2, bindings[0].TLSMode)
|
|
|
require.Equal(t, "127.0.1.2", bindings[0].ForcePassiveIP)
|
|
require.Equal(t, "127.0.1.2", bindings[0].ForcePassiveIP)
|
|
|
require.Equal(t, 0, bindings[0].ClientAuthType)
|
|
require.Equal(t, 0, bindings[0].ClientAuthType)
|
|
|
|
|
+ require.Len(t, bindings[0].TLSCipherSuites, 2)
|
|
|
|
|
+ require.Equal(t, "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", bindings[0].TLSCipherSuites[0])
|
|
|
|
|
+ require.Equal(t, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", bindings[0].TLSCipherSuites[1])
|
|
|
require.Equal(t, 2203, bindings[1].Port)
|
|
require.Equal(t, 2203, bindings[1].Port)
|
|
|
require.Equal(t, "127.0.1.1", bindings[1].Address)
|
|
require.Equal(t, "127.0.1.1", bindings[1].Address)
|
|
|
require.True(t, bindings[1].ApplyProxyConfig)
|
|
require.True(t, bindings[1].ApplyProxyConfig)
|
|
|
require.Equal(t, 1, bindings[1].TLSMode)
|
|
require.Equal(t, 1, bindings[1].TLSMode)
|
|
|
require.Equal(t, "127.0.1.1", bindings[1].ForcePassiveIP)
|
|
require.Equal(t, "127.0.1.1", bindings[1].ForcePassiveIP)
|
|
|
require.Equal(t, 1, bindings[1].ClientAuthType)
|
|
require.Equal(t, 1, bindings[1].ClientAuthType)
|
|
|
|
|
+ require.Nil(t, bindings[1].TLSCipherSuites)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func TestWebDAVBindingsFromEnv(t *testing.T) {
|
|
func TestWebDAVBindingsFromEnv(t *testing.T) {
|
|
@@ -584,6 +590,7 @@ func TestWebDAVBindingsFromEnv(t *testing.T) {
|
|
|
os.Setenv("SFTPGO_WEBDAVD__BINDINGS__1__ADDRESS", "127.0.0.1")
|
|
os.Setenv("SFTPGO_WEBDAVD__BINDINGS__1__ADDRESS", "127.0.0.1")
|
|
|
os.Setenv("SFTPGO_WEBDAVD__BINDINGS__1__PORT", "8000")
|
|
os.Setenv("SFTPGO_WEBDAVD__BINDINGS__1__PORT", "8000")
|
|
|
os.Setenv("SFTPGO_WEBDAVD__BINDINGS__1__ENABLE_HTTPS", "0")
|
|
os.Setenv("SFTPGO_WEBDAVD__BINDINGS__1__ENABLE_HTTPS", "0")
|
|
|
|
|
+ os.Setenv("SFTPGO_WEBDAVD__BINDINGS__1__TLS_CIPHER_SUITES", "TLS_RSA_WITH_AES_128_CBC_SHA ")
|
|
|
os.Setenv("SFTPGO_WEBDAVD__BINDINGS__2__ADDRESS", "127.0.1.1")
|
|
os.Setenv("SFTPGO_WEBDAVD__BINDINGS__2__ADDRESS", "127.0.1.1")
|
|
|
os.Setenv("SFTPGO_WEBDAVD__BINDINGS__2__PORT", "9000")
|
|
os.Setenv("SFTPGO_WEBDAVD__BINDINGS__2__PORT", "9000")
|
|
|
os.Setenv("SFTPGO_WEBDAVD__BINDINGS__2__ENABLE_HTTPS", "1")
|
|
os.Setenv("SFTPGO_WEBDAVD__BINDINGS__2__ENABLE_HTTPS", "1")
|
|
@@ -592,6 +599,7 @@ func TestWebDAVBindingsFromEnv(t *testing.T) {
|
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__1__ADDRESS")
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__1__ADDRESS")
|
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__1__PORT")
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__1__PORT")
|
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__1__ENABLE_HTTPS")
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__1__ENABLE_HTTPS")
|
|
|
|
|
+ os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__1__TLS_CIPHER_SUITES")
|
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__2__ADDRESS")
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__2__ADDRESS")
|
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__2__PORT")
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__2__PORT")
|
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__2__ENABLE_HTTPS")
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__2__ENABLE_HTTPS")
|
|
@@ -606,14 +614,18 @@ func TestWebDAVBindingsFromEnv(t *testing.T) {
|
|
|
require.Equal(t, 0, bindings[0].Port)
|
|
require.Equal(t, 0, bindings[0].Port)
|
|
|
require.Empty(t, bindings[0].Address)
|
|
require.Empty(t, bindings[0].Address)
|
|
|
require.False(t, bindings[0].EnableHTTPS)
|
|
require.False(t, bindings[0].EnableHTTPS)
|
|
|
|
|
+ require.Len(t, bindings[0].TLSCipherSuites, 0)
|
|
|
require.Equal(t, 8000, bindings[1].Port)
|
|
require.Equal(t, 8000, bindings[1].Port)
|
|
|
require.Equal(t, "127.0.0.1", bindings[1].Address)
|
|
require.Equal(t, "127.0.0.1", bindings[1].Address)
|
|
|
require.False(t, bindings[1].EnableHTTPS)
|
|
require.False(t, bindings[1].EnableHTTPS)
|
|
|
require.Equal(t, 0, bindings[1].ClientAuthType)
|
|
require.Equal(t, 0, bindings[1].ClientAuthType)
|
|
|
|
|
+ require.Len(t, bindings[1].TLSCipherSuites, 1)
|
|
|
|
|
+ require.Equal(t, "TLS_RSA_WITH_AES_128_CBC_SHA", bindings[1].TLSCipherSuites[0])
|
|
|
require.Equal(t, 9000, bindings[2].Port)
|
|
require.Equal(t, 9000, bindings[2].Port)
|
|
|
require.Equal(t, "127.0.1.1", bindings[2].Address)
|
|
require.Equal(t, "127.0.1.1", bindings[2].Address)
|
|
|
require.True(t, bindings[2].EnableHTTPS)
|
|
require.True(t, bindings[2].EnableHTTPS)
|
|
|
require.Equal(t, 1, bindings[2].ClientAuthType)
|
|
require.Equal(t, 1, bindings[2].ClientAuthType)
|
|
|
|
|
+ require.Nil(t, bindings[2].TLSCipherSuites)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func TestHTTPDBindingsFromEnv(t *testing.T) {
|
|
func TestHTTPDBindingsFromEnv(t *testing.T) {
|
|
@@ -623,6 +635,7 @@ func TestHTTPDBindingsFromEnv(t *testing.T) {
|
|
|
|
|
|
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__0__ADDRESS", sockPath)
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__0__ADDRESS", sockPath)
|
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__0__PORT", "0")
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__0__PORT", "0")
|
|
|
|
|
+ os.Setenv("SFTPGO_HTTPD__BINDINGS__0__TLS_CIPHER_SUITES", " TLS_AES_128_GCM_SHA256")
|
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__1__ADDRESS", "127.0.0.1")
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__1__ADDRESS", "127.0.0.1")
|
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__1__PORT", "8000")
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__1__PORT", "8000")
|
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__1__ENABLE_HTTPS", "0")
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__1__ENABLE_HTTPS", "0")
|
|
@@ -632,9 +645,11 @@ func TestHTTPDBindingsFromEnv(t *testing.T) {
|
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__2__ENABLE_WEB_ADMIN", "0")
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__2__ENABLE_WEB_ADMIN", "0")
|
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__2__ENABLE_HTTPS", "1")
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__2__ENABLE_HTTPS", "1")
|
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__2__CLIENT_AUTH_TYPE", "1")
|
|
os.Setenv("SFTPGO_HTTPD__BINDINGS__2__CLIENT_AUTH_TYPE", "1")
|
|
|
|
|
+ os.Setenv("SFTPGO_HTTPD__BINDINGS__2__TLS_CIPHER_SUITES", " TLS_AES_256_GCM_SHA384 , TLS_CHACHA20_POLY1305_SHA256")
|
|
|
t.Cleanup(func() {
|
|
t.Cleanup(func() {
|
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__0__ADDRESS")
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__0__ADDRESS")
|
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__0__PORT")
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__0__PORT")
|
|
|
|
|
+ os.Unsetenv("SFTPGO_HTTPD__BINDINGS__0__TLS_CIPHER_SUITES")
|
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__1__ADDRESS")
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__1__ADDRESS")
|
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__1__PORT")
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__1__PORT")
|
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__1__ENABLE_HTTPS")
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__1__ENABLE_HTTPS")
|
|
@@ -644,6 +659,7 @@ func TestHTTPDBindingsFromEnv(t *testing.T) {
|
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__2__ENABLE_HTTPS")
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__2__ENABLE_HTTPS")
|
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__2__ENABLE_WEB_ADMIN")
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__2__ENABLE_WEB_ADMIN")
|
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__2__CLIENT_AUTH_TYPE")
|
|
os.Unsetenv("SFTPGO_HTTPD__BINDINGS__2__CLIENT_AUTH_TYPE")
|
|
|
|
|
+ os.Unsetenv("SFTPGO_HTTPD__BINDINGS__2__TLS_CIPHER_SUITES")
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
configDir := ".."
|
|
configDir := ".."
|
|
@@ -655,16 +671,22 @@ func TestHTTPDBindingsFromEnv(t *testing.T) {
|
|
|
require.Equal(t, sockPath, bindings[0].Address)
|
|
require.Equal(t, sockPath, bindings[0].Address)
|
|
|
require.False(t, bindings[0].EnableHTTPS)
|
|
require.False(t, bindings[0].EnableHTTPS)
|
|
|
require.True(t, bindings[0].EnableWebAdmin)
|
|
require.True(t, bindings[0].EnableWebAdmin)
|
|
|
|
|
+ require.Len(t, bindings[0].TLSCipherSuites, 1)
|
|
|
|
|
+ require.Equal(t, "TLS_AES_128_GCM_SHA256", bindings[0].TLSCipherSuites[0])
|
|
|
require.Equal(t, 8000, bindings[1].Port)
|
|
require.Equal(t, 8000, bindings[1].Port)
|
|
|
require.Equal(t, "127.0.0.1", bindings[1].Address)
|
|
require.Equal(t, "127.0.0.1", bindings[1].Address)
|
|
|
require.False(t, bindings[1].EnableHTTPS)
|
|
require.False(t, bindings[1].EnableHTTPS)
|
|
|
require.True(t, bindings[1].EnableWebAdmin)
|
|
require.True(t, bindings[1].EnableWebAdmin)
|
|
|
|
|
+ require.Nil(t, bindings[1].TLSCipherSuites)
|
|
|
|
|
|
|
|
require.Equal(t, 9000, bindings[2].Port)
|
|
require.Equal(t, 9000, bindings[2].Port)
|
|
|
require.Equal(t, "127.0.1.1", bindings[2].Address)
|
|
require.Equal(t, "127.0.1.1", bindings[2].Address)
|
|
|
require.True(t, bindings[2].EnableHTTPS)
|
|
require.True(t, bindings[2].EnableHTTPS)
|
|
|
require.False(t, bindings[2].EnableWebAdmin)
|
|
require.False(t, bindings[2].EnableWebAdmin)
|
|
|
require.Equal(t, 1, bindings[2].ClientAuthType)
|
|
require.Equal(t, 1, bindings[2].ClientAuthType)
|
|
|
|
|
+ require.Len(t, bindings[2].TLSCipherSuites, 2)
|
|
|
|
|
+ require.Equal(t, "TLS_AES_256_GCM_SHA384", bindings[2].TLSCipherSuites[0])
|
|
|
|
|
+ require.Equal(t, "TLS_CHACHA20_POLY1305_SHA256", bindings[2].TLSCipherSuites[1])
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func TestHTTPClientCertificatesFromEnv(t *testing.T) {
|
|
func TestHTTPClientCertificatesFromEnv(t *testing.T) {
|
|
@@ -738,6 +760,7 @@ func TestConfigFromEnv(t *testing.T) {
|
|
|
os.Setenv("SFTPGO_DATA_PROVIDER__ACTIONS__EXECUTE_ON", "add")
|
|
os.Setenv("SFTPGO_DATA_PROVIDER__ACTIONS__EXECUTE_ON", "add")
|
|
|
os.Setenv("SFTPGO_KMS__SECRETS__URL", "local")
|
|
os.Setenv("SFTPGO_KMS__SECRETS__URL", "local")
|
|
|
os.Setenv("SFTPGO_KMS__SECRETS__MASTER_KEY_PATH", "path")
|
|
os.Setenv("SFTPGO_KMS__SECRETS__MASTER_KEY_PATH", "path")
|
|
|
|
|
+ os.Setenv("SFTPGO_TELEMETRY__TLS_CIPHER_SUITES", "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA")
|
|
|
t.Cleanup(func() {
|
|
t.Cleanup(func() {
|
|
|
os.Unsetenv("SFTPGO_SFTPD__BINDINGS__0__ADDRESS")
|
|
os.Unsetenv("SFTPGO_SFTPD__BINDINGS__0__ADDRESS")
|
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__0__PORT")
|
|
os.Unsetenv("SFTPGO_WEBDAVD__BINDINGS__0__PORT")
|
|
@@ -746,6 +769,7 @@ func TestConfigFromEnv(t *testing.T) {
|
|
|
os.Unsetenv("SFTPGO_DATA_PROVIDER__ACTIONS__EXECUTE_ON")
|
|
os.Unsetenv("SFTPGO_DATA_PROVIDER__ACTIONS__EXECUTE_ON")
|
|
|
os.Unsetenv("SFTPGO_KMS__SECRETS__URL")
|
|
os.Unsetenv("SFTPGO_KMS__SECRETS__URL")
|
|
|
os.Unsetenv("SFTPGO_KMS__SECRETS__MASTER_KEY_PATH")
|
|
os.Unsetenv("SFTPGO_KMS__SECRETS__MASTER_KEY_PATH")
|
|
|
|
|
+ os.Unsetenv("SFTPGO_TELEMETRY__TLS_CIPHER_SUITES")
|
|
|
})
|
|
})
|
|
|
err := config.LoadConfig(".", "invalid config")
|
|
err := config.LoadConfig(".", "invalid config")
|
|
|
assert.NoError(t, err)
|
|
assert.NoError(t, err)
|
|
@@ -760,4 +784,8 @@ func TestConfigFromEnv(t *testing.T) {
|
|
|
kmsConfig := config.GetKMSConfig()
|
|
kmsConfig := config.GetKMSConfig()
|
|
|
assert.Equal(t, "local", kmsConfig.Secrets.URL)
|
|
assert.Equal(t, "local", kmsConfig.Secrets.URL)
|
|
|
assert.Equal(t, "path", kmsConfig.Secrets.MasterKeyPath)
|
|
assert.Equal(t, "path", kmsConfig.Secrets.MasterKeyPath)
|
|
|
|
|
+ telemetryConfig := config.GetTelemetryConfig()
|
|
|
|
|
+ assert.Len(t, telemetryConfig.TLSCipherSuites, 2)
|
|
|
|
|
+ assert.Equal(t, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", telemetryConfig.TLSCipherSuites[0])
|
|
|
|
|
+ assert.Equal(t, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", telemetryConfig.TLSCipherSuites[1])
|
|
|
}
|
|
}
|