Port 636 TLS/SSL Port 389 Plain

This commit is contained in:
Steffen Probst 2025-04-02 15:55:30 +02:00
parent 0b02fb196b
commit d57df1babf

27
ldap.go
View File

@ -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
}
}