From 581f9be43570b8f50c8ce7bc3140d4507be21a8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Verhofst=C3=A9?= <25819942+JonasVerhofste@users.noreply.github.com> Date: Thu, 15 Aug 2019 18:07:33 +0200 Subject: [PATCH] Change Zipkin CORS origins and headers to comma separated list (#1556) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jonas Verhofsté <25819942+JonasVerhofste@users.noreply.github.com> --- cmd/collector/app/builder/builder_flags.go | 4 ++-- cmd/collector/main.go | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cmd/collector/app/builder/builder_flags.go b/cmd/collector/app/builder/builder_flags.go index 639558e0404..b3e0740acbd 100644 --- a/cmd/collector/app/builder/builder_flags.go +++ b/cmd/collector/app/builder/builder_flags.go @@ -78,8 +78,8 @@ func AddFlags(flags *flag.FlagSet) { flags.String(collectorGRPCCert, "", "Path to TLS certificate for the gRPC collector TLS service") flags.String(collectorGRPCKey, "", "Path to TLS key for the gRPC collector TLS cert") flags.String(collectorGRPCClientCA, "", "Path to a TLS CA to verify certificates presented by clients (if unset, all clients are permitted)") - flags.String(collectorZipkinAllowedOrigins, "*", "Allowed origins for the Zipkin collector service, default accepts all") - flags.String(collectorZipkinAllowedHeaders, "content-type", "Allowed headers for the Zipkin collector service, default content-type") + flags.String(collectorZipkinAllowedOrigins, "*", "Comma separated list of allowed origins for the Zipkin collector service, default accepts all") + flags.String(collectorZipkinAllowedHeaders, "content-type", "Comma separated list of allowed headers for the Zipkin collector service, default content-type") } // InitFromViper initializes CollectorOptions with properties from viper diff --git a/cmd/collector/main.go b/cmd/collector/main.go index b8c0c6c9aa4..a6101139288 100644 --- a/cmd/collector/main.go +++ b/cmd/collector/main.go @@ -22,6 +22,7 @@ import ( "net/http" "os" "strconv" + "strings" "github.com/gorilla/mux" "github.com/rs/cors" @@ -227,10 +228,13 @@ func startZipkinHTTPAPI( r := mux.NewRouter() zHandler.RegisterRoutes(r) + origins := strings.Split(strings.Replace(allowedOrigins, " ", "", -1), ",") + headers := strings.Split(strings.Replace(allowedHeaders, " ", "", -1), ",") + c := cors.New(cors.Options{ - AllowedOrigins: []string{allowedOrigins}, + AllowedOrigins: origins, AllowedMethods: []string{"POST"}, // Allowing only POST, because that's the only handled one - AllowedHeaders: []string{allowedHeaders}, + AllowedHeaders: headers, }) httpPortStr := ":" + strconv.Itoa(zipkinPort)