mirror of
https://github.com/openfaas/faas.git
synced 2025-06-08 08:25:03 +00:00
32 lines
931 B
Go
32 lines
931 B
Go
// License: OpenFaaS Community Edition (CE) EULA
|
|
// Copyright (c) 2017,2019-2024 OpenFaaS Author(s)
|
|
|
|
// Copyright (c) OpenFaaS Author(s). All rights reserved.
|
|
|
|
package handlers
|
|
|
|
import "net/http"
|
|
|
|
// CORSHandler set custom CORS instructions for the store.
|
|
type CORSHandler struct {
|
|
Upstream *http.Handler
|
|
AllowedHost string
|
|
}
|
|
|
|
func (c CORSHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
// https://raw.githubusercontent.com/openfaas/store/master/store.json
|
|
w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
|
|
w.Header().Set("Access-Control-Allow-Methods", http.MethodGet)
|
|
w.Header().Set("Access-Control-Allow-Origin", c.AllowedHost)
|
|
|
|
(*c.Upstream).ServeHTTP(w, r)
|
|
}
|
|
|
|
// DecorateWithCORS decorate a handler with CORS-injecting middleware
|
|
func DecorateWithCORS(upstream http.Handler, allowedHost string) http.Handler {
|
|
return CORSHandler{
|
|
Upstream: &upstream,
|
|
AllowedHost: allowedHost,
|
|
}
|
|
}
|