Match reports whether (schemeA, hostA) and (schemeB, hostB) denote the same origin. Scheme comparison is case-insensitive and default ports (http:80, https:443) are normalized so "example.com" and "example.com:443" match.
(schemeA, hostA, schemeB, hostB string)
| 19 | // origin. Scheme comparison is case-insensitive and default ports (http:80, |
| 20 | // https:443) are normalized so "example.com" and "example.com:443" match. |
| 21 | func Match(schemeA, hostA, schemeB, hostB string) bool { |
| 22 | normalizedSchemeA := utilsstrings.ToLower(schemeA) |
| 23 | normalizedSchemeB := utilsstrings.ToLower(schemeB) |
| 24 | |
| 25 | normalizedHostA := normalizeSchemeHost(normalizedSchemeA, hostA) |
| 26 | normalizedHostB := normalizeSchemeHost(normalizedSchemeB, hostB) |
| 27 | |
| 28 | return normalizedSchemeA == normalizedSchemeB && normalizedHostA == normalizedHostB |
| 29 | } |
| 30 | |
| 31 | func normalizeSchemeHost(scheme, host string) string { |
| 32 | host = utilsstrings.ToLower(host) |