fix: decode bearer tokens for IM HTTP

This commit is contained in:
richjohnrambo
2026-08-17 15:08:32 +08:00
parent b7a5d5cb17
commit d10c05b030
2 changed files with 22 additions and 1 deletions
+5 -1
View File
@@ -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
}