// WebServer starts the web server and serves GET & POST requests func (u *Uchiwa) WebServer(publicPath *string, auth auth.Config) { // private endpoints http.Handle("/delete_client", auth.Authenticate(http.HandlerFunc(u.deleteClientHandler))) http.Handle("/get_aggregate", auth.Authenticate(http.HandlerFunc(u.getAggregateHandler))) http.Handle("/get_aggregate_by_issued", auth.Authenticate(http.HandlerFunc(u.getAggregateByIssuedHandler))) http.Handle("/get_client", auth.Authenticate(http.HandlerFunc(u.getClientHandler))) http.Handle("/get_config", auth.Authenticate(http.HandlerFunc(u.getConfigHandler))) http.Handle("/get_sensu", auth.Authenticate(http.HandlerFunc(u.getSensuHandler))) http.Handle("/post_event", auth.Authenticate(http.HandlerFunc(u.postEventHandler))) http.Handle("/stashes", auth.Authenticate(http.HandlerFunc(u.stashHandler))) http.Handle("/stashes/delete", auth.Authenticate(http.HandlerFunc(u.stashDeleteHandler))) // static files http.Handle("/", http.FileServer(http.Dir(*publicPath))) // public endpoints http.Handle("/config/auth", http.HandlerFunc(u.configAuthHandler)) http.Handle("/health", http.HandlerFunc(u.healthHandler)) http.Handle("/health/", http.HandlerFunc(u.healthHandler)) http.Handle("/login", auth.GetIdentification()) listen := fmt.Sprintf("%s:%d", u.Config.Uchiwa.Host, u.Config.Uchiwa.Port) logger.Infof("Uchiwa is now listening on %s", listen) logger.Fatal(http.ListenAndServe(listen, nil)) }
// WebServer starts the web server and serves GET & POST requests func (u *Uchiwa) WebServer(publicPath *string, auth auth.Config) { // Private endpoints http.Handle("/aggregates", auth.Authenticate(http.HandlerFunc(u.aggregatesHandler))) http.Handle("/aggregates/", auth.Authenticate(http.HandlerFunc(u.aggregatesHandler))) http.Handle("/checks", auth.Authenticate(http.HandlerFunc(u.checksHandler))) http.Handle("/clients", auth.Authenticate(http.HandlerFunc(u.clientsHandler))) http.Handle("/clients/", auth.Authenticate(http.HandlerFunc(u.clientsHandler))) http.Handle("/config", auth.Authenticate(http.HandlerFunc(u.configHandler))) http.Handle("/datacenters", auth.Authenticate(http.HandlerFunc(u.datacentersHandler))) http.Handle("/events", auth.Authenticate(http.HandlerFunc(u.eventsHandler))) http.Handle("/events/", auth.Authenticate(http.HandlerFunc(u.eventsHandler))) http.Handle("/request", auth.Authenticate(http.HandlerFunc(u.requestHandler))) http.Handle("/results/", auth.Authenticate(http.HandlerFunc(u.resultsHandler))) http.Handle("/stashes", auth.Authenticate(http.HandlerFunc(u.stashesHandler))) http.Handle("/stashes/", auth.Authenticate(http.HandlerFunc(u.stashesHandler))) http.Handle("/subscriptions", auth.Authenticate(http.HandlerFunc(u.subscriptionsHandler))) if u.Config.Uchiwa.Enterprise == false { http.Handle("/metrics", auth.Authenticate(http.HandlerFunc(u.metricsHandler))) } // Static files http.Handle("/", http.FileServer(http.Dir(*publicPath))) // Public endpoints http.Handle("/config/", http.HandlerFunc(u.configHandler)) http.Handle("/health", http.HandlerFunc(u.healthHandler)) http.Handle("/health/", http.HandlerFunc(u.healthHandler)) http.Handle("/login", auth.GetIdentification()) listen := fmt.Sprintf("%s:%d", u.Config.Uchiwa.Host, u.Config.Uchiwa.Port) logger.Warningf("Uchiwa is now listening on %s", listen) logger.Fatal(http.ListenAndServe(listen, nil)) }