mirror of
https://github.com/MengMengCode/CLICD.git
synced 2026-08-05 05:36:07 +08:00
36 lines
707 B
Go
36 lines
707 B
Go
package api
|
|
|
|
import (
|
|
"net"
|
|
"net/http"
|
|
"net/url"
|
|
"strings"
|
|
|
|
"github.com/gorilla/websocket"
|
|
)
|
|
|
|
var upgrader = websocket.Upgrader{
|
|
ReadBufferSize: 1024,
|
|
WriteBufferSize: 1024,
|
|
CheckOrigin: func(r *http.Request) bool {
|
|
origin := r.Header.Get("Origin")
|
|
if origin == "" {
|
|
return true
|
|
}
|
|
originURL, err := url.Parse(origin)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
originHost := strings.ToLower(stripPort(originURL.Host))
|
|
requestHost := strings.ToLower(stripPort(r.Host))
|
|
return originHost != "" && originHost == requestHost
|
|
},
|
|
}
|
|
|
|
func stripPort(host string) string {
|
|
if parsedHost, _, err := net.SplitHostPort(host); err == nil {
|
|
return parsedHost
|
|
}
|
|
return strings.Trim(host, "[]")
|
|
}
|