notifications: Deprecate redundant encryptions settings

'tls' and 'ssl' are duplicates of 'starttls' and 'ssltls' and have been deprecated
in the upstream modules we use for sending mail notifications. Let's deprecate them
as well and issue a warning when they are still used.

Fixes: #7345
This commit is contained in:
Ralf Haferkamp
2023-09-26 16:40:58 +02:00
committed by Ralf Haferkamp
parent e03de5da04
commit 246ec1ecc9
3 changed files with 28 additions and 1 deletions

View File

@@ -0,0 +1,8 @@
Bugfix: Deprecate redundant encryptions settings for notification service
The values `tls` and `ssl` for the `smtp_encryption` configuration setting are
duplicates of `starttls` and `ssltls`. They have been marked as deprecated.
A warning will be logged when they are still used. Please use `starttls` instead
for `tls` and `ssltls` instead of `ssl.
https://github.com/owncloud/ocis/issues/7345

View File

@@ -44,7 +44,7 @@ type SMTP struct {
Password string `yaml:"smtp_password" env:"NOTIFICATIONS_SMTP_PASSWORD" desc:"Password for the SMTP host to connect to."`
Insecure bool `yaml:"insecure" env:"NOTIFICATIONS_SMTP_INSECURE" desc:"Allow insecure connections to the SMTP server."`
Authentication string `yaml:"smtp_authentication" env:"NOTIFICATIONS_SMTP_AUTHENTICATION" desc:"Authentication method for the SMTP communication. Possible values are 'login', 'plain', 'crammd5', 'none'"`
Encryption string `yaml:"smtp_encryption" env:"NOTIFICATIONS_SMTP_ENCRYPTION" desc:"Encryption method for the SMTP communication. Possible values are 'starttls', 'ssl', 'ssltls', 'tls' and 'none'."`
Encryption string `yaml:"smtp_encryption" env:"NOTIFICATIONS_SMTP_ENCRYPTION" desc:"Encryption method for the SMTP communication. Possible values are 'starttls', 'ssl', 'ssltls', 'tls' and 'none'." deprecationVersion:"5.0.0" removalVersion:"6.0.0" deprecationInfo:"The NOTIFICATIONS_SMTP_ENCRYPTION values 'ssl' and 'tls' are deprecated and will be removed in the future." deprecationReplacement:"Use 'starttls' instead of 'tls' and 'ssltls' instead of 'ssl'."`
}
// Events combines the configuration options for the event bus.

View File

@@ -2,10 +2,12 @@ package parser
import (
"errors"
"fmt"
ociscfg "github.com/owncloud/ocis/v2/ocis-pkg/config"
"github.com/owncloud/ocis/v2/services/notifications/pkg/config"
"github.com/owncloud/ocis/v2/services/notifications/pkg/config/defaults"
"github.com/owncloud/ocis/v2/services/notifications/pkg/logging"
"github.com/owncloud/ocis/v2/ocis-pkg/config/envdecode"
)
@@ -33,5 +35,22 @@ func ParseConfig(cfg *config.Config) error {
}
func Validate(cfg *config.Config) error {
logger := logging.Configure(cfg.Service.Name, cfg.Log)
if cfg.Notifications.SMTP.Host != "" {
switch cfg.Notifications.SMTP.Encryption {
case "tls":
logger.Warn().Msg("The smtp_encryption value 'tls' is deprecated. Please use the value 'starttls' instead.")
case "ssl":
logger.Warn().Msg("The smtp_encryption value 'ssl' is deprecated. Please use the value 'ssltls' instead.")
case "starttls", "ssltls", "none":
break
default:
return fmt.Errorf(
"unknown value '%s' for 'smtp_encryption' in service %s. Allowed values are 'starttls', 'ssltls' or 'none'",
cfg.Notifications.SMTP.Encryption, cfg.Service.Name,
)
}
}
return nil
}