1
0
mirror of https://github.com/woodpecker-ci/woodpecker.git synced 2024-11-30 08:06:52 +02:00

ability to handle options requests

This commit is contained in:
Brad Rydzewski 2014-11-15 22:15:22 -08:00
parent 91c2678b3d
commit 2302d74465
2 changed files with 25 additions and 0 deletions

View File

@ -131,6 +131,7 @@ func main() {
// create the router and add middleware
mux := router.New()
mux.Use(middleware.Options)
mux.Use(ContextMiddleware)
mux.Use(middleware.SetHeaders)
mux.Use(middleware.SetUser)

View File

@ -0,0 +1,24 @@
package middleware
import (
"net/http"
"github.com/zenazn/goji/web"
)
// Options automatically return an appropriate "Allow" header when the
// request method is OPTIONS and the request would have otherwise been 404'd.
func Options(c *web.C, h http.Handler) http.Handler {
fn := func(w http.ResponseWriter, r *http.Request) {
if r.Method == "OPTIONS" {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,OPTIONS")
w.Header().Set("Access-Control-Allow-Headers", "Authorization")
w.Header().Set("Allow", "HEAD,GET,POST,PUT,DELETE,OPTIONS")
w.WriteHeader(http.StatusOK)
return
}
h.ServeHTTP(w, r)
}
return http.HandlerFunc(fn)
}