forked from mirror/websocket
Use ASCII case folding in same origin test
This commit is contained in:
parent
23059f2957
commit
b648f206c2
|
@ -76,7 +76,7 @@ func checkSameOrigin(r *http.Request) bool {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return u.Host == r.Host
|
return equalASCIIFold(u.Host, r.Host)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *Upgrader) selectSubprotocol(r *http.Request, responseHeader http.Header) string {
|
func (u *Upgrader) selectSubprotocol(r *http.Request, responseHeader http.Header) string {
|
||||||
|
|
|
@ -49,3 +49,21 @@ func TestIsWebSocketUpgrade(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var checkSameOriginTests = []struct {
|
||||||
|
ok bool
|
||||||
|
r *http.Request
|
||||||
|
}{
|
||||||
|
{false, &http.Request{Host: "example.org", Header: map[string][]string{"Origin": []string{"https://other.org"}}}},
|
||||||
|
{true, &http.Request{Host: "example.org", Header: map[string][]string{"Origin": []string{"https://example.org"}}}},
|
||||||
|
{true, &http.Request{Host: "Example.org", Header: map[string][]string{"Origin": []string{"https://example.org"}}}},
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCheckSameOrigin(t *testing.T) {
|
||||||
|
for _, tt := range checkSameOriginTests {
|
||||||
|
ok := checkSameOrigin(tt.r)
|
||||||
|
if tt.ok != ok {
|
||||||
|
t.Errorf("checkSameOrigin(%+v) returned %v, want %v", tt.r, ok, tt.ok)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue