Commit cc42cc55 authored by Adrian Sutton's avatar Adrian Sutton Committed by GitHub

signer: Restore default of enabling TLS. (#12713)

Can be disabled with --signer.tls.enabled=false. Avoids breaking existing deployments that default to TLS enabled.
parent 0797d147
...@@ -937,6 +937,18 @@ func TestAdditionalBondClaimants(t *testing.T) { ...@@ -937,6 +937,18 @@ func TestAdditionalBondClaimants(t *testing.T) {
}) })
} }
func TestSignerTLS(t *testing.T) {
t.Run("EnabledByDefault", func(t *testing.T) {
cfg := configForArgs(t, addRequiredArgs(types.TraceTypeAlphabet))
require.True(t, cfg.TxMgrConfig.SignerCLIConfig.TLSConfig.Enabled)
})
t.Run("Disabled", func(t *testing.T) {
cfg := configForArgs(t, addRequiredArgs(types.TraceTypeAlphabet, "--signer.tls.enabled=false"))
require.False(t, cfg.TxMgrConfig.SignerCLIConfig.TLSConfig.Enabled)
})
}
func verifyArgsInvalid(t *testing.T, messageContains string, cliArgs []string) { func verifyArgsInvalid(t *testing.T, messageContains string, cliArgs []string) {
_, _, err := dryRunWithArgs(cliArgs) _, _, err := dryRunWithArgs(cliArgs)
require.ErrorContains(t, err, messageContains) require.ErrorContains(t, err, messageContains)
......
...@@ -12,9 +12,10 @@ import ( ...@@ -12,9 +12,10 @@ import (
) )
const ( const (
TLSCaCertFlagName = "tls.ca" TLSCaCertFlagName = "tls.ca"
TLSCertFlagName = "tls.cert" TLSCertFlagName = "tls.cert"
TLSKeyFlagName = "tls.key" TLSKeyFlagName = "tls.key"
TLSEnabledFlagName = "tls.enabled"
) )
// CLIFlags returns flags with env var envPrefix // CLIFlags returns flags with env var envPrefix
...@@ -24,9 +25,10 @@ func CLIFlags(envPrefix string) []cli.Flag { ...@@ -24,9 +25,10 @@ func CLIFlags(envPrefix string) []cli.Flag {
} }
var ( var (
defaultTLSCaCert = "tls/ca.crt" defaultTLSCaCert = "tls/ca.crt"
defaultTLSCert = "tls/tls.crt" defaultTLSCert = "tls/tls.crt"
defaultTLSKey = "tls/tls.key" defaultTLSKey = "tls/tls.key"
defaultTLSEnabled = true
) )
// CLIFlagsWithFlagPrefix returns flags with env var and cli flag prefixes // CLIFlagsWithFlagPrefix returns flags with env var and cli flag prefixes
...@@ -39,6 +41,12 @@ func CLIFlagsWithFlagPrefix(envPrefix string, flagPrefix string) []cli.Flag { ...@@ -39,6 +41,12 @@ func CLIFlagsWithFlagPrefix(envPrefix string, flagPrefix string) []cli.Flag {
return opservice.PrefixEnvVar(envPrefix, name) return opservice.PrefixEnvVar(envPrefix, name)
} }
return []cli.Flag{ return []cli.Flag{
&cli.BoolFlag{
Name: prefixFunc(TLSEnabledFlagName),
Usage: "Enable or disable TLS client authentication for the signer",
Value: defaultTLSEnabled,
EnvVars: prefixEnvVars("TLS_ENABLED"),
},
&cli.StringFlag{ &cli.StringFlag{
Name: prefixFunc(TLSCaCertFlagName), Name: prefixFunc(TLSCaCertFlagName),
Usage: "tls ca cert path", Usage: "tls ca cert path",
...@@ -72,7 +80,7 @@ func NewCLIConfig() CLIConfig { ...@@ -72,7 +80,7 @@ func NewCLIConfig() CLIConfig {
TLSCaCert: defaultTLSCaCert, TLSCaCert: defaultTLSCaCert,
TLSCert: defaultTLSCert, TLSCert: defaultTLSCert,
TLSKey: defaultTLSKey, TLSKey: defaultTLSKey,
Enabled: false, Enabled: true,
} }
} }
...@@ -95,7 +103,7 @@ func ReadCLIConfig(ctx *cli.Context) CLIConfig { ...@@ -95,7 +103,7 @@ func ReadCLIConfig(ctx *cli.Context) CLIConfig {
TLSCaCert: ctx.String(TLSCaCertFlagName), TLSCaCert: ctx.String(TLSCaCertFlagName),
TLSCert: ctx.String(TLSCertFlagName), TLSCert: ctx.String(TLSCertFlagName),
TLSKey: ctx.String(TLSKeyFlagName), TLSKey: ctx.String(TLSKeyFlagName),
Enabled: ctx.IsSet(TLSCaCertFlagName) || ctx.IsSet(TLSCertFlagName) || ctx.IsSet(TLSKeyFlagName), Enabled: ctx.Bool(TLSEnabledFlagName),
} }
} }
...@@ -109,6 +117,6 @@ func ReadCLIConfigWithPrefix(ctx *cli.Context, flagPrefix string) CLIConfig { ...@@ -109,6 +117,6 @@ func ReadCLIConfigWithPrefix(ctx *cli.Context, flagPrefix string) CLIConfig {
TLSCaCert: ctx.String(prefixFunc(TLSCaCertFlagName)), TLSCaCert: ctx.String(prefixFunc(TLSCaCertFlagName)),
TLSCert: ctx.String(prefixFunc(TLSCertFlagName)), TLSCert: ctx.String(prefixFunc(TLSCertFlagName)),
TLSKey: ctx.String(prefixFunc(TLSKeyFlagName)), TLSKey: ctx.String(prefixFunc(TLSKeyFlagName)),
Enabled: ctx.IsSet(TLSCaCertFlagName) || ctx.IsSet(TLSCertFlagName) || ctx.IsSet(TLSKeyFlagName), Enabled: ctx.Bool(prefixFunc(TLSEnabledFlagName)),
} }
} }
package tls package tls
import ( import (
"fmt"
"testing" "testing"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
...@@ -41,6 +42,12 @@ func TestInvalidConfig(t *testing.T) { ...@@ -41,6 +42,12 @@ func TestInvalidConfig(t *testing.T) {
err := cfg.Check() err := cfg.Check()
require.ErrorContains(t, err, "all tls flags must be set if at least one is set") require.ErrorContains(t, err, "all tls flags must be set if at least one is set")
}) })
t.Run(fmt.Sprintf("%sAllowedWhenDisabled", test.name), func(t *testing.T) {
cfg := NewCLIConfig()
cfg.Enabled = false
test.configChange(&cfg)
require.NoError(t, cfg.Check())
})
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment