Initial commit

This commit is contained in:
Kylie Czar
2021-05-16 15:22:20 -03:00
commit 6455a1a71c
10 changed files with 240 additions and 0 deletions

52
fsldap.go Normal file
View File

@@ -0,0 +1,52 @@
package main
import (
"log"
"os"
"os/signal"
"syscall"
ldap "github.com/vjeantet/ldapserver"
"gt.kalli.st/czar/fsldap/config"
"gt.kalli.st/czar/fsldap/handler"
"gt.kalli.st/czar/fsldap/utils"
)
func init(){
log.Print("Loading vars...")
config.SmtpHostname = utils.Env("SMTP_HOSTNAME")
config.SmtpPort = utils.Env("SMTP_PORT")
config.Domain = utils.Env("SMTP_DOMAIN")
config.Base = utils.Env("LDAP_BASE")
config.Uid = utils.Env("LDAP_UID")
config.BaseLenght = len(config.Base) + 1
config.UidLenght = len(config.Uid) + 1
}
func main() {
server := ldap.NewServer()
routes := ldap.NewRouteMux()
routes.Bind(handler.Bind)
routes.Extended(handler.WhoAmI).
RequestName(ldap.NoticeOfWhoAmI).Label("Ext - WhoAmI")
routes.Search(handler.Search).Label("Search - Generic")
server.Handle(routes)
log.Print("Starting FSLDAP server...")
go func(){
err := server.ListenAndServe("127.0.0.1:389")
if err != nil{
log.Fatal(err)
}
}()
ch := make(chan os.Signal)
signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM)
<-ch
close(ch)
server.Stop()
}