From 6cafce4d037de724f8ade4a3661cead7142eda39 Mon Sep 17 00:00:00 2001 From: Tit Petric Date: Wed, 16 Jan 2019 12:28:50 +0100 Subject: [PATCH] upd(system): additional route middleware, route context --- system/flags.go | 3 --- system/routes.go | 5 ++++- system/start.go | 6 ++++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/system/flags.go b/system/flags.go index 908a61ec0..474fc2721 100644 --- a/system/flags.go +++ b/system/flags.go @@ -38,9 +38,6 @@ func (c *appFlags) Validate() error { if err := c.oidc.Validate(); err != nil { return err } - //if err := c.jwt.Validate(); err != nil { - // return err - //} return nil } diff --git a/system/routes.go b/system/routes.go index 98139cf04..2fadcf1b6 100644 --- a/system/routes.go +++ b/system/routes.go @@ -1,6 +1,7 @@ package service import ( + "context" "fmt" "reflect" "runtime" @@ -18,9 +19,11 @@ import ( "github.com/crusttech/crust/system/rest" ) -func Routes() *chi.Mux { +func Routes(ctx context.Context) *chi.Mux { r := chi.NewRouter() r.Use(handleCORS) + r.Use(middleware.RealIP) + r.Use(middleware.RequestID) // Only protect application routes with JWT r.Group(func(r chi.Router) { diff --git a/system/start.go b/system/start.go index ac9373f78..4c697c695 100644 --- a/system/start.go +++ b/system/start.go @@ -5,7 +5,9 @@ import ( "log" "net" "net/http" + "os" + "github.com/SentimensRG/ctx" "github.com/SentimensRG/ctx/sigctx" "github.com/pkg/errors" "github.com/titpetric/factory" @@ -74,7 +76,7 @@ func Init() error { } func Start() error { - log.Printf("Starting auth, version: %v, built on: %v", version.Version, version.BuildTime) + log.Printf("Starting "+os.Args[0]+", version: %v, built on: %v", version.Version, version.BuildTime) log.Println("Starting http server on address " + flags.http.Addr) listener, err := net.Listen("tcp", flags.http.Addr) if err != nil { @@ -84,9 +86,9 @@ func Start() error { if flags.monitor.Interval > 0 { go metrics.NewMonitor(flags.monitor.Interval) } - go http.Serve(listener, Routes()) var deadline = sigctx.New() + go http.Serve(listener, Routes(ctx.AsContext(deadline))) <-deadline.Done() return nil