Skip to content

Commit

Permalink
notifications: Deprecate redundant encryptions settings
Browse files Browse the repository at this point in the history
'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: owncloud#7345
  • Loading branch information
rhafer committed Sep 28, 2023
1 parent 836106d commit 28f2754
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 1 deletion.
8 changes: 8 additions & 0 deletions changelog/unreleased/fix-notifications-redundant-settings.md
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion services/notifications/pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
19 changes: 19 additions & 0 deletions services/notifications/pkg/config/parser/parse.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
)
Expand Down Expand Up @@ -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":
break
default:
return fmt.Errorf(
"unknown value '%s' for 'smtp_encryption' in service %s. Allowed values are 'starttls' or 'ssltls'",
cfg.Notifications.SMTP.Encryption, cfg.Service.Name,
)
}
}
return nil
}

0 comments on commit 28f2754

Please sign in to comment.