mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-03 08:37:37 +00:00
481d77bfde
* reusing grpc cors middleware for rest * addressing radek's comments * Update api/server/middleware.go Co-authored-by: Sammy Rosso <15244892+saolyn@users.noreply.github.com> * fixing to recommended name * fixing naming * fixing rename on test --------- Co-authored-by: Sammy Rosso <15244892+saolyn@users.noreply.github.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
33 lines
865 B
Go
33 lines
865 B
Go
package server
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/gorilla/mux"
|
|
"github.com/rs/cors"
|
|
)
|
|
|
|
// NormalizeQueryValuesHandler normalizes an input query of "key=value1,value2,value3" to "key=value1&key=value2&key=value3"
|
|
func NormalizeQueryValuesHandler(next http.Handler) http.Handler {
|
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
query := r.URL.Query()
|
|
NormalizeQueryValues(query)
|
|
r.URL.RawQuery = query.Encode()
|
|
|
|
next.ServeHTTP(w, r)
|
|
})
|
|
}
|
|
|
|
// CorsHandler sets the cors settings on api endpoints
|
|
func CorsHandler(allowOrigins []string) mux.MiddlewareFunc {
|
|
c := cors.New(cors.Options{
|
|
AllowedOrigins: allowOrigins,
|
|
AllowedMethods: []string{http.MethodPost, http.MethodGet, http.MethodDelete, http.MethodOptions},
|
|
AllowCredentials: true,
|
|
MaxAge: 600,
|
|
AllowedHeaders: []string{"*"},
|
|
})
|
|
|
|
return c.Handler
|
|
}
|