MCPcopy Create free account
hub / github.com/OpenListTeam/OpenList / validateOrigin

Function validateOrigin

server/mcp/handler.go:506–529  ·  view source on GitHub ↗
(r *http.Request)

Source from the content-addressed store, hash-verified

504}
505
506func validateOrigin(r *http.Request) bool {
507 origin := r.Header.Get("Origin")
508 if origin == "" {
509 return true
510 }
511
512 originURL, err := url.Parse(origin)
513 if err != nil || originURL.Host == "" {
514 return false
515 }
516 if strings.EqualFold(originURL.Host, r.Host) {
517 return strings.EqualFold(originURL.Scheme, requestScheme(r))
518 }
519
520 siteURL := common.GetApiUrlFromRequest(r)
521 if siteURL == "" {
522 return false
523 }
524 siteParsed, err := url.Parse(siteURL)
525 if err != nil {
526 return false
527 }
528 return strings.EqualFold(originURL.Host, siteParsed.Host) && strings.EqualFold(originURL.Scheme, siteParsed.Scheme)
529}
530
531func requestScheme(r *http.Request) string {
532 if r.TLS != nil || r.Header.Get("X-Forwarded-Proto") == "https" {

Callers 3

handleGetMethod · 0.85
handlePostMethod · 0.85
handleDeleteMethod · 0.85

Calls 3

GetApiUrlFromRequestFunction · 0.92
requestSchemeFunction · 0.85
GetMethod · 0.65

Tested by

no test coverage detected