Skip to content

Commit ac9ae32

Browse files
committed
tls: support ** multilevel wildcards
1 parent 4225336 commit ac9ae32

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

tls.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,19 @@ func (self *TransportTls) GetTlsConfig(hostName string) (*tls.Config, error) {
133133
}
134134

135135
if !self.allowedHosts[hostName] {
136-
baseName, ok := baseName(hostName)
137-
if ok {
138-
ok = self.allowedHosts[fmt.Sprintf("*.%s", baseName)]
136+
allowed := false
137+
if baseName, ok := baseName(hostName); ok {
138+
allowed = self.allowedHosts[fmt.Sprintf("*.%s", baseName)]
139+
if !allowed {
140+
parts := strings.Split(baseName, ".")
141+
for !allowed && 0 < len(parts) {
142+
glog.Infof("[tls]check %s...", fmt.Sprintf("**.%s", strings.Join(parts, ".")))
143+
allowed = self.allowedHosts[fmt.Sprintf("**.%s", strings.Join(parts, "."))]
144+
parts = parts[1:]
145+
}
146+
}
139147
}
140-
if !ok {
148+
if !allowed {
141149
if self.settings.EnableSelfSign {
142150
return selfSigned()
143151
} else {

0 commit comments

Comments
 (0)