Files
ipasso/app/ipasso/main.go
2023-10-26 17:46:58 +02:00

54 lines
1.2 KiB
Go

package main
import (
"errors"
"flag"
"fmt"
"git.thequux.com/thequux/ipasso/sso-proxy/backend"
"git.thequux.com/thequux/ipasso/util/startup"
"github.com/julienschmidt/httprouter"
"go.uber.org/zap"
"log"
"net"
"net/http/fcgi"
"os"
)
var (
domain = flag.String("domain", "thequux.com", "The base domain to enable SSO for")
listen = flag.String("listen", "0.0.0.0:80", "The address to listen on")
datastore backend.Backend = &backend.NullBackend{}
)
var (
ErrNoExpiration = errors.New("Request missing expiration date; misconfigured reverse proxy?")
ErrInvalidResult = errors.New("invalid result from LDAP search")
)
func main() {
flag.Parse()
development, err := zap.NewDevelopment()
if err != nil {
_, _ = fmt.Fprint(os.Stderr, "Failed to create logger", err)
os.Exit(1)
}
zap.ReplaceGlobals(development)
l := zap.L().Named("root")
startup.Logger.Run()
startup.PostFlags.Run()
startup.Startup.Run()
router := httprouter.New()
startup.Routes.Run(router)
l.Info("Starting")
listener, err := net.Listen("tcp", *listen)
if err != nil {
log.Fatalln("Failed to listen: ", err)
}
l.Info("Listening", zap.Stringer("addr", listener.Addr()))
log.Fatal(fcgi.Serve(listener, router))
}