package main import ( "time" "git.jasinco.work/wgcl/api/auth" "git.jasinco.work/wgcl/api/vpn" "git.jasinco.work/wgcl/internal/federate" "git.jasinco.work/wgcl/internal/logger" "github.com/fvbock/endless" //"github.com/gin-contrib/pprof" ginzap "github.com/gin-contrib/zap" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() r.Use(ginzap.Ginzap(logger.Logger, time.RFC3339, true)) // r.Use(ginzap.RecoveryWithZap(logger.Logger, true)) defer logger.Flush() l := federate.FedLDAP{ Base_dn: "dc=example,dc=com", User_filter: "(&(objectClass=person)(uid=%s))", Group_wg_filter: "(&(dn=%s)(memberof=cn=wgopr,ou=groups,dc=example,dc=com))", } l.Init("ldap://localhost:3890") if err := l.AuthBind("uid=admin,ou=people,dc=example,dc=com", "recrecrec"); err != nil { logger.Logger.Fatal(err.Error()) } auth.Driver = &l vpn.StartWG() defer vpn.StopWG() // pprof.Register(r) r.POST("/api/auth", auth.IssueJWT) { g := r.Group("/api", auth.AuthMiddleware()) v := g.Group("/vpn") v.GET("/peers", vpn.GETPeers) v.POST("/peer", vpn.NewPeer) v.GET("/peer", vpn.SearchPeer) v.DELETE("/peer", vpn.DeletePeer) } endless.ListenAndServe("0.0.0.0:8080", r) }