Skip to content

Commit c1585eb

Browse files
authored
Merge pull request #213 from HL70/master
feat(IDN): add support for international domains
2 parents a948381 + 76ea246 commit c1585eb

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

model/model.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ type RouterConfig struct {
4545
BodySize string `key:"bodySize" constraint:"^[0-9]\\d*[kKmM]?$"`
4646
ProxyRealIPCIDRs []string `key:"proxyRealIpCidrs" constraint:"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))?(\\s*,\\s*)?)+$"`
4747
ErrorLogLevel string `key:"errorLogLevel" constraint:"^(info|notice|warn|error|crit|alert|emerg)$"`
48-
PlatformDomain string `key:"platformDomain" constraint:"(?i)^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$"`
48+
PlatformDomain string `key:"platformDomain" constraint:"(?i)^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z0-9]+(-*[a-z0-9]+)+$"`
4949
UseProxyProtocol bool `key:"useProxyProtocol" constraint:"(?i)^(true|false)$"`
5050
EnforceWhitelists bool `key:"enforceWhitelists" constraint:"(?i)^(true|false)$"`
5151
DefaultWhitelist []string `key:"defaultWhitelist" constraint:"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))?(\\s*,\\s*)?)+$"`
@@ -103,12 +103,12 @@ func newGzipConfig() *GzipConfig {
103103
// AppConfig encapsulates the configuration for all routes to a single back end.
104104
type AppConfig struct {
105105
Name string
106-
Domains []string `key:"domains" constraint:"(?i)^((([a-z0-9]+(-[a-z0-9]+)*)|((\\*\\.)?[a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,})(\\s*,\\s*)?)+$"`
106+
Domains []string `key:"domains" constraint:"(?i)^((([a-z0-9]+(-*[a-z0-9]+)*)|((\\*\\.)?[a-z0-9]+(-*[a-z0-9]+)*\\.)+[a-z0-9]+(-*[a-z0-9]+)+)(\\s*,\\s*)?)+$"`
107107
Whitelist []string `key:"whitelist" constraint:"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))?(\\s*,\\s*)?)+$"`
108108
ConnectTimeout string `key:"connectTimeout" constraint:"^[1-9]\\d*(ms|[smhdwMy])?$"`
109109
TCPTimeout string `key:"tcpTimeout" constraint:"^[1-9]\\d*(ms|[smhdwMy])?$"`
110110
ServiceIP string
111-
CertMappings map[string]string `key:"certificates" constraint:"(?i)^((([a-z0-9]+(-[a-z0-9]+)*)|((\\*\\.)?[a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}):([a-z0-9]+(-[a-z0-9]+)*)(\\s*,\\s*)?)+$"`
111+
CertMappings map[string]string `key:"certificates" constraint:"(?i)^((([a-z0-9]+(-*[a-z0-9]+)*)|((\\*\\.)?[a-z0-9]+(-*[a-z0-9]+)*\\.)+[a-z0-9]+(-*[a-z0-9]+)+):([a-z0-9]+(-*[a-z0-9]+)*)(\\s*,\\s*)?)+$"`
112112
Certificates map[string]*Certificate
113113
Available bool
114114
}

model/model_validation_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ func TestInvalidAppDomains(t *testing.T) {
188188
}
189189

190190
func TestValidAppDomains(t *testing.T) {
191-
testValidValues(t, newTestAppConfig, "Domains", "domains", []string{"foobar", "foo-bar", "foobar.com", "foobar,foobar.com", "foobar, foobar.com", "*.foobar.com"})
191+
testValidValues(t, newTestAppConfig, "Domains", "domains", []string{"foobar", "foo-bar", "foobar.com", "foobar,foobar.com", "foobar, foobar.com", "*.foobar.com", "xn--eckwd4c7c.xn--zckzah", "xn--80ahd1agd.ru", "xn--tst-qla.xn--knigsgsschen-lcb0w.de"})
192192
}
193193

194194
func TestInvalidAppWhitelist(t *testing.T) {

0 commit comments

Comments
 (0)