lib/api: Set ServerName on LDAPS connections (fixes #6450) (#6451)

tls.Dial needs it for certificate verification.
This commit is contained in:
Jakob Borg 2020-03-24 12:56:43 +01:00 committed by GitHub
parent ddfa82e990
commit ca89f12be6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,6 +11,7 @@ import (
"crypto/tls"
"encoding/base64"
"fmt"
"net"
"net/http"
"strings"
"time"
@ -130,10 +131,16 @@ func authStatic(username string, password string, configUser string, configPassw
func authLDAP(username string, password string, cfg config.LDAPConfiguration) bool {
address := cfg.Address
hostname, _, err := net.SplitHostPort(address)
if err != nil {
hostname = address
}
var connection *ldap.Conn
var err error
if cfg.Transport == config.LDAPTransportTLS {
connection, err = ldap.DialTLS("tcp", address, &tls.Config{InsecureSkipVerify: cfg.InsecureSkipVerify})
connection, err = ldap.DialTLS("tcp", address, &tls.Config{
ServerName: hostname,
InsecureSkipVerify: cfg.InsecureSkipVerify,
})
} else {
connection, err = ldap.Dial("tcp", address)
}