From 2bfa51da1c7a0be079a851521b13211f99fe69bf Mon Sep 17 00:00:00 2001 From: Stefan Benz <46600784+stebenz@users.noreply.github.com> Date: Wed, 19 Oct 2022 14:36:51 +0100 Subject: [PATCH] fix(import): import json marshal to jsonpb (#4580) * fix(import): import json marshal to jsonpb * fix: add unmarshaloptions discard unknown Co-authored-by: Livio Spring * fix(import): import json marshal to jsonpb Co-authored-by: Livio Spring --- internal/api/grpc/admin/import.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/internal/api/grpc/admin/import.go b/internal/api/grpc/admin/import.go index 6e2e7c9746..cca286cac0 100644 --- a/internal/api/grpc/admin/import.go +++ b/internal/api/grpc/admin/import.go @@ -3,16 +3,17 @@ package admin import ( "context" "encoding/base64" - "encoding/json" "fmt" "io/ioutil" "strconv" "time" "cloud.google.com/go/storage" + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7/pkg/credentials" "google.golang.org/api/option" + "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/types/known/durationpb" "github.com/zitadel/logging" @@ -229,9 +230,14 @@ func (s *Server) transportDataFromFile(ctx context.Context, v1Transformation boo data = localData } + jsonpb := &runtime.JSONPb{ + UnmarshalOptions: protojson.UnmarshalOptions{ + DiscardUnknown: true, + }, + } if v1Transformation { dataImportV1 := new(v1_pb.ImportDataOrg) - if err := json.Unmarshal(data, dataImportV1); err != nil { + if err := jsonpb.Unmarshal(data, dataImportV1); err != nil { return nil, err } @@ -242,7 +248,7 @@ func (s *Server) transportDataFromFile(ctx context.Context, v1Transformation boo dataOrgs = dataImport.Orgs } else { dataImport := new(admin_pb.ImportDataOrg) - if err := json.Unmarshal(data, dataImport); err != nil { + if err := jsonpb.Unmarshal(data, dataImport); err != nil { return nil, err } dataOrgs = dataImport.Orgs