MCPcopy Create free account
hub / github.com/compozy/agh / resolveAllowedOrigin

Function resolveAllowedOrigin

internal/api/httpapi/middleware.go:83–108  ·  view source on GitHub ↗
(origin string, requestScheme string, requestHost string, boundHost string)

Source from the content-addressed store, hash-verified

81}
82
83func resolveAllowedOrigin(origin string, requestScheme string, requestHost string, boundHost string) (string, bool) {
84 parsed, err := url.Parse(strings.TrimSpace(origin))
85 if err != nil || parsed.Scheme == "" || parsed.Host == "" {
86 return "", false
87 }
88
89 originSpec, ok := canonicalOriginFromURL(parsed)
90 if !ok {
91 return "", false
92 }
93
94 requestSpec, ok := canonicalOriginFromHost(requestHost, requestScheme, "")
95 if !ok {
96 return "", false
97 }
98
99 boundSpec, ok := canonicalOriginFromHost(boundHost, requestSpec.scheme, requestSpec.port)
100 switch {
101 case originSpec.canonical == requestSpec.canonical:
102 return origin, true
103 case ok && !boundSpec.wildcard && originSpec.canonical == boundSpec.canonical:
104 return origin, true
105 default:
106 return "", false
107 }
108}
109
110type canonicalOrigin struct {
111 scheme string

Calls 2

canonicalOriginFromURLFunction · 0.85
canonicalOriginFromHostFunction · 0.85