54 lines
1.2 KiB
Go
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))
|
|
}
|