Use url.Parse instead of verifying just the prefix

This commit is contained in:
Till Faelligen 2023-11-25 20:58:08 +01:00
parent f5fb3bf712
commit e45b125d3a
No known key found for this signature in database
GPG key ID: 3DF82D8AB9211D4E

View file

@ -3,6 +3,7 @@ package config
import ( import (
"fmt" "fmt"
"math/rand" "math/rand"
"net/url"
"strconv" "strconv"
"strings" "strings"
"time" "time"
@ -116,8 +117,14 @@ func (c *Global) Verify(configErrs *ConfigErrors) {
checkNotEmpty(configErrs, "global.private_key", string(c.PrivateKeyPath)) checkNotEmpty(configErrs, "global.private_key", string(c.PrivateKeyPath))
// Check that client well-known has a proper format // Check that client well-known has a proper format
if c.WellKnownClientName != "" && !(strings.HasPrefix(c.WellKnownClientName, "http://") || strings.HasPrefix(c.WellKnownClientName, "https://")) {
logrus.Warn("The configuration for well_known_client_name does not have a proper format, consider adding http:// or https://. Some clients may fail to connect.") if c.WellKnownClientName != "" {
parsedURL, err := url.Parse(c.WellKnownClientName)
if err != nil {
logrus.WithError(err).Warn("The configuration for well_known_client_name does not have a proper format, consider adding http:// or https://. Some clients may fail to connect.")
} else {
c.WellKnownClientName = parsedURL.String()
}
} }
for _, v := range c.VirtualHosts { for _, v := range c.VirtualHosts {