mirror of
https://github.com/coder/coder.git
synced 2025-07-03 16:13:58 +00:00
* chore: Add cors to workspace proxies to allow for latency checks * Add latency check to wsproxy Use performance API timings. - Fix cors and timing headers - Accept custom headers
25 lines
653 B
Go
25 lines
653 B
Go
package coderd
|
|
|
|
import (
|
|
"net/http"
|
|
"net/url"
|
|
"strings"
|
|
)
|
|
|
|
func LatencyCheck(allowedOrigins ...*url.URL) http.HandlerFunc {
|
|
allowed := make([]string, 0, len(allowedOrigins))
|
|
for _, origin := range allowedOrigins {
|
|
// Allow the origin without a path
|
|
tmp := *origin
|
|
tmp.Path = ""
|
|
allowed = append(allowed, strings.TrimSuffix(origin.String(), "/"))
|
|
}
|
|
origins := strings.Join(allowed, ",")
|
|
return func(rw http.ResponseWriter, r *http.Request) {
|
|
// Allowing timing information to be shared. This allows the browser
|
|
// to exclude TLS handshake timing.
|
|
rw.Header().Set("Timing-Allow-Origin", origins)
|
|
rw.WriteHeader(http.StatusOK)
|
|
}
|
|
}
|