17 lines
544 B
Go
17 lines
544 B
Go
package helps
|
|
|
|
import (
|
|
"net/url"
|
|
"strings"
|
|
)
|
|
|
|
// IsAnthropicUpstreamURL reports whether a resolved request targets Anthropic's
|
|
// first-party API origin. Claude-specific body, header, HTTP, and TLS behavior
|
|
// must all use this gate so they cannot drift onto custom ports or userinfo URLs.
|
|
func IsAnthropicUpstreamURL(u *url.URL) bool {
|
|
if u == nil || u.User != nil || !strings.EqualFold(u.Scheme, "https") || !strings.EqualFold(u.Hostname(), "api.anthropic.com") {
|
|
return false
|
|
}
|
|
port := u.Port()
|
|
return port == "" || port == "443"
|
|
}
|