mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-08-02 00:15:21 +02:00
fix: ASCII equal fold for authorization header (#8391)
For the "Authorization:" header only lowercase "token" was accepted. This change allows uppercase "Token" as well. Signed-off-by: Nis Wechselberg <enbewe@enbewe.de> Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8391 Reviewed-by: Gusted <gusted@noreply.codeberg.org> Reviewed-by: Michael Kriese <michael.kriese@gmx.de> Co-authored-by: Nis Wechselberg <enbewe@enbewe.de> Co-committed-by: Nis Wechselberg <enbewe@enbewe.de>
This commit is contained in:
parent
f324ee73c5
commit
24d6972f6b
4 changed files with 78 additions and 1 deletions
|
@ -45,3 +45,29 @@ func TestToSnakeCase(t *testing.T) {
|
|||
assert.Equal(t, expected, ToSnakeCase(input))
|
||||
}
|
||||
}
|
||||
|
||||
func TestASCIIEqualFold(t *testing.T) {
|
||||
cases := map[string]struct {
|
||||
First string
|
||||
Second string
|
||||
Expected bool
|
||||
}{
|
||||
"Empty String": {First: "", Second: "", Expected: true},
|
||||
"Single Letter Ident": {First: "h", Second: "h", Expected: true},
|
||||
"Single Letter Equal": {First: "h", Second: "H", Expected: true},
|
||||
"Single Letter Unequal": {First: "h", Second: "g", Expected: false},
|
||||
"Simple Match Ident": {First: "someString", Second: "someString", Expected: true},
|
||||
"Simple Match Equal": {First: "someString", Second: "someSTRIng", Expected: true},
|
||||
"Simple Match Unequal": {First: "someString", Second: "sameString", Expected: false},
|
||||
"Different Length": {First: "abcdef", Second: "abcdefg", Expected: false},
|
||||
"Unicode Kelvin": {First: "ghijklm", Second: "GHIJ\u212ALM", Expected: false},
|
||||
}
|
||||
|
||||
for name := range cases {
|
||||
c := cases[name]
|
||||
t.Run(name, func(t *testing.T) {
|
||||
Actual := ASCIIEqualFold(c.First, c.Second)
|
||||
assert.Equal(t, c.Expected, Actual)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue