fix: decode bearer tokens for IM HTTP
This commit is contained in:
+5
-1
@@ -4848,7 +4848,11 @@ func resolveIMHTTPBearer(req *http.Request) (*imPrincipal, error) {
|
||||
if handler == nil || !handler.IsInitialized() {
|
||||
return nil, types.ErrUnsupported
|
||||
}
|
||||
rec, _, err := handler.Authenticate(auth.AuthContext{}, []byte(strings.TrimSpace(token)))
|
||||
secret := []byte(strings.TrimSpace(token))
|
||||
if decoded, err := base64.StdEncoding.DecodeString(strings.TrimSpace(token)); err == nil {
|
||||
secret = decoded
|
||||
}
|
||||
rec, _, err := handler.Authenticate(auth.AuthContext{}, secret)
|
||||
if err != nil || rec == nil || rec.TenantID.IsZero() || rec.Uid.IsZero() {
|
||||
return nil, types.ErrPermissionDenied
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user