From f092c614cf3fd210d45670dabcebf2161350bae8 Mon Sep 17 00:00:00 2001 From: Victor Vrantchan Date: Thu, 22 Dec 2016 20:31:45 -0500 Subject: [PATCH] add error logging to distributed query campaign handler (#694) --- server/service/endpoint_campaigns.go | 8 ++++++-- server/service/handler.go | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/server/service/endpoint_campaigns.go b/server/service/endpoint_campaigns.go index 993d350e13..a93abb3422 100644 --- a/server/service/endpoint_campaigns.go +++ b/server/service/endpoint_campaigns.go @@ -4,6 +4,7 @@ import ( "net/http" "github.com/go-kit/kit/endpoint" + kitlog "github.com/go-kit/kit/log" "github.com/kolide/kolide-ose/server/contexts/viewer" "github.com/kolide/kolide-ose/server/kolide" "github.com/kolide/kolide-ose/server/websocket" @@ -15,7 +16,6 @@ import ( //////////////////////////////////////////////////////////////////////////////// type createDistributedQueryCampaignRequest struct { - UserID uint Query string `json:"query"` Selected struct { Labels []uint `json:"labels"` @@ -45,11 +45,12 @@ func makeCreateDistributedQueryCampaignEndpoint(svc kolide.Service) endpoint.End // Stream Distributed Query Campaign Results and Metadata //////////////////////////////////////////////////////////////////////////////// -func makeStreamDistributedQueryCampaignResultsHandler(svc kolide.Service, jwtKey string) http.HandlerFunc { +func makeStreamDistributedQueryCampaignResultsHandler(svc kolide.Service, jwtKey string, logger kitlog.Logger) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { // Upgrade to websocket connection conn, err := websocket.Upgrade(w, r) if err != nil { + logger.Log("err", err, "msg", "could not upgrade to websocket") return } defer conn.Close() @@ -57,12 +58,14 @@ func makeStreamDistributedQueryCampaignResultsHandler(svc kolide.Service, jwtKey // Receive the auth bearer token token, err := conn.ReadAuthToken() if err != nil { + logger.Log("err", err, "msg", "failed to read auth token") return } // Authenticate with the token vc, err := authViewer(context.Background(), jwtKey, string(token), svc) if err != nil || !vc.CanPerformActions() { + logger.Log("err", err, "msg", "unauthorized viewer") conn.WriteJSONError("unauthorized") return } @@ -71,6 +74,7 @@ func makeStreamDistributedQueryCampaignResultsHandler(svc kolide.Service, jwtKey campaignID, err := idFromRequest(r, "id") if err != nil { + logger.Log("err", err, "invalid campaign ID") conn.WriteJSONError("invalid campaign ID") return } diff --git a/server/service/handler.go b/server/service/handler.go index f783c2781a..57714026d7 100644 --- a/server/service/handler.go +++ b/server/service/handler.go @@ -271,7 +271,7 @@ func MakeHandler(ctx context.Context, svc kolide.Service, jwtKey string, logger r := mux.NewRouter() attachKolideAPIRoutes(r, kolideHandlers) r.HandleFunc("/api/v1/kolide/results/{id}", - makeStreamDistributedQueryCampaignResultsHandler(svc, jwtKey)). + makeStreamDistributedQueryCampaignResultsHandler(svc, jwtKey, logger)). Methods("GET").Name("distributed_query_results") addMetrics(r)