feat: Add Bearer token auth (#22498)
* feat: add bearer token support * fix: updating to use equalfoldpull/22669/head
parent
ca992e9fff
commit
1ba6581e74
|
@ -7,7 +7,10 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
const tokenScheme = "Token " // TODO(goller): I'd like this to be Bearer
|
const (
|
||||||
|
tokenScheme = "Token "
|
||||||
|
bearerScheme = "Bearer "
|
||||||
|
)
|
||||||
|
|
||||||
// errors
|
// errors
|
||||||
var (
|
var (
|
||||||
|
@ -21,10 +24,16 @@ func GetToken(r *http.Request) (string, error) {
|
||||||
if header == "" {
|
if header == "" {
|
||||||
return "", ErrAuthHeaderMissing
|
return "", ErrAuthHeaderMissing
|
||||||
}
|
}
|
||||||
if !strings.HasPrefix(header, tokenScheme) {
|
|
||||||
return "", ErrAuthBadScheme
|
if len(header) >= len(tokenScheme) &&
|
||||||
|
strings.EqualFold(header[:len(tokenScheme)], tokenScheme) {
|
||||||
|
return header[len(tokenScheme):], nil
|
||||||
|
} else if len(header) > len(bearerScheme) &&
|
||||||
|
strings.EqualFold(header[:len(bearerScheme)], bearerScheme) {
|
||||||
|
return header[len(bearerScheme):], nil
|
||||||
}
|
}
|
||||||
return header[len(tokenScheme):], nil
|
|
||||||
|
return "", ErrAuthBadScheme
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetToken adds the token to the request.
|
// SetToken adds the token to the request.
|
||||||
|
|
|
@ -56,6 +56,24 @@ func TestGetToken(t *testing.T) {
|
||||||
result: "tok2",
|
result: "tok2",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "bearer token",
|
||||||
|
args: args{
|
||||||
|
header: "Bearer tok2",
|
||||||
|
},
|
||||||
|
wants: wants{
|
||||||
|
result: "tok2",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "short header",
|
||||||
|
args: args{
|
||||||
|
header: "a",
|
||||||
|
},
|
||||||
|
wants: wants{
|
||||||
|
err: ErrAuthBadScheme,
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue