diff options
Diffstat (limited to 'cmd/vpnweb/vpnweb.go')
-rw-r--r-- | cmd/vpnweb/vpnweb.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/cmd/vpnweb/vpnweb.go b/cmd/vpnweb/vpnweb.go new file mode 100644 index 0000000..86fc38c --- /dev/null +++ b/cmd/vpnweb/vpnweb.go @@ -0,0 +1,50 @@ +package main + +import ( + "log" + "net/http" + + //"0xacab.org/leap/pkg/auth" + "0xacab.org/leap/vpnweb/pkg/config" + "0xacab.org/leap/vpnweb/pkg/web" +) + +func main() { + opts := new(config.Opts) + config.InitializeFlags(opts) + config.CheckConfigurationOptions(opts) + + ci := web.NewCaInfo(opts.CaCrt, opts.CaKey) + ch := web.CertHandler{ci} + + /* protected routes */ + + /* TODO ---- + http.HandleFunc("/3/auth", auth.AuthMiddleware(opts.Auth)) + http.HandleFunc("/3/refresh-token", auth.RefreshAuthMiddleware(opts.Auth)) + http.HandleFunc("/3/cert", jwtMiddleware.Handler(ch.certResponder)) + */ + + http.HandleFunc("/3/cert", ch.CertResponder) + + /* static files */ + + /* TODO -- pass static file path in options */ + + web.HttpFileHandler("/3/configs.json", "./public/3/configs.json") + web.HttpFileHandler("/3/service.json", "./public/3/service.json") + web.HttpFileHandler("/3/config/eip-service.json", "./public/3/eip-service.json") + web.HttpFileHandler("/3/ca.crt", "./public/ca.crt") + web.HttpFileHandler("/provider.json", "./public/provider.json") + web.HttpFileHandler("/ca.crt", "./public/ca.crt") + + pstr := ":" + opts.Port + log.Println("Listening in port", opts.Port) + + if opts.Notls == true { + log.Fatal(http.ListenAndServe(pstr, nil)) + } else { + log.Fatal(http.ListenAndServeTLS(pstr, opts.TlsCrt, opts.TlsKey, nil)) + + } +} |