Port 636 TLS/SSL Port 389 Plain
This commit is contained in:
parent
0b02fb196b
commit
d57df1babf
27
ldap.go
27
ldap.go
@ -3,15 +3,36 @@ package main
|
||||
import (
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/go-ldap/ldap/v3"
|
||||
)
|
||||
|
||||
func fetchDataFromLDAP() ([]Person, error) {
|
||||
l, err := ldap.DialTLS("tcp", ldapConfig.Server+":"+ldapConfig.Port, &tls.Config{InsecureSkipVerify: true})
|
||||
var l *ldap.Conn
|
||||
var err error
|
||||
|
||||
// Port überprüfen und entsprechende Verbindung herstellen
|
||||
port, err := strconv.Atoi(ldapConfig.Port)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to connect to LDAP server: %v", err)
|
||||
return nil, fmt.Errorf("ungültiger Port: %v", err)
|
||||
}
|
||||
|
||||
if port == 636 {
|
||||
// SSL/TLS-Verbindung für Port 636
|
||||
l, err = ldap.DialTLS("tcp", ldapConfig.Server+":"+ldapConfig.Port, &tls.Config{InsecureSkipVerify: true})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to connect to LDAP server (TLS): %v", err)
|
||||
}
|
||||
} else if port == 389 {
|
||||
// Unverschlüsselte Verbindung für Port 389
|
||||
l, err = ldap.Dial("tcp", ldapConfig.Server+":"+ldapConfig.Port)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to connect to LDAP server: %v", err)
|
||||
}
|
||||
} else {
|
||||
return nil, fmt.Errorf("unsupported LDAP port: %s, use 389 for unencrypted or 636 for TLS/SSL", ldapConfig.Port)
|
||||
}
|
||||
defer l.Close()
|
||||
|
||||
@ -122,4 +143,4 @@ func isValidContact(entry *ldap.Entry) bool {
|
||||
telephoneNumber := entry.GetAttributeValue("telephoneNumber")
|
||||
|
||||
return firstName != "" && lastName != "" && telephoneNumber != config.PhoneRules.InvalidNumber
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user