From 4ef5a9d93b7c9be7f9d8e2d0fea096c5c616bb08 Mon Sep 17 00:00:00 2001 From: Olgun Cengiz <olgun.cengiz@vereign.com> Date: Fri, 9 Nov 2018 14:36:35 +0300 Subject: [PATCH] MaxMessageSize added --- config.yaml.sample | 5 ++++- handler/generate_keypair.go | 2 +- handler/handler.go | 7 ++++--- handler/revoke.go | 2 +- main.go | 4 +++- server/configs.go | 2 ++ server/server.go | 12 ++++++++---- 7 files changed, 23 insertions(+), 11 deletions(-) diff --git a/config.yaml.sample b/config.yaml.sample index 0ec5701..c4ee562 100644 --- a/config.yaml.sample +++ b/config.yaml.sample @@ -7,4 +7,7 @@ certDir: cert certFile: server.crt certKey: server.key vereignCertFile: vereign_ca.cer -vereignCertKey: vereign_ca.key \ No newline at end of file +vereignCertKey: vereign_ca.key + +# Maximum Message Size (in megabytes) +maxMessageSize: 32 \ No newline at end of file diff --git a/handler/generate_keypair.go b/handler/generate_keypair.go index 19f6582..6281655 100644 --- a/handler/generate_keypair.go +++ b/handler/generate_keypair.go @@ -39,7 +39,7 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context, auth := s.CreateAuthentication(ctx) client := &client.DataStorageClientImpl{} - client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath) + client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.MaxMessageSize) defer client.CloseClient() generateKeyPairResponse := &api.GenerateKeyPairResponse{} diff --git a/handler/handler.go b/handler/handler.go index ab52748..0f55be7 100644 --- a/handler/handler.go +++ b/handler/handler.go @@ -38,6 +38,7 @@ type KeyStorageServerImpl struct { CertFilePath string VereignCertFilePath string VereignPrivateKeyFilePath string + MaxMessageSize int } func (s *KeyStorageServerImpl) CreateAuthentication(ctx context.Context) *authentication.Authentication { @@ -60,7 +61,7 @@ func (s *KeyStorageServerImpl) GetKey(ctx context.Context, in *api.GetKeyRequest auth := s.CreateAuthentication(ctx) client := &client.DataStorageClientImpl{} - client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath) + client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.MaxMessageSize) defer client.CloseClient() getKeyResponse := &api.GetKeyResponse{} @@ -107,7 +108,7 @@ func (s *KeyStorageServerImpl) SetKey(ctx context.Context, in *api.SetKeyRequest auth := s.CreateAuthentication(ctx) client := &client.DataStorageClientImpl{} - client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath) + client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.MaxMessageSize) defer client.CloseClient() setKeyResponse := &api.SetKeyResponse{} @@ -155,7 +156,7 @@ func (s *KeyStorageServerImpl) ReserveKeyUUID(ctx context.Context, in *api.Reser auth := s.CreateAuthentication(ctx) client := &client.DataStorageClientImpl{} - client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath) + client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.MaxMessageSize) defer client.CloseClient() reserveKeyUUIDResponse := &api.ReserveKeyUUIDResponse{} diff --git a/handler/revoke.go b/handler/revoke.go index 8f757b2..17709aa 100644 --- a/handler/revoke.go +++ b/handler/revoke.go @@ -29,7 +29,7 @@ func (s *KeyStorageServerImpl) Revoke(ctx context.Context, in *api.RevokeRequest auth := s.CreateAuthentication(ctx) client := &client.DataStorageClientImpl{} - client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath) + client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.MaxMessageSize) defer client.CloseClient() revokeResponse := &api.RevokeResponse{} diff --git a/main.go b/main.go index 076a8b7..decdcd8 100644 --- a/main.go +++ b/main.go @@ -44,10 +44,12 @@ func main() { vereignCertFilePath := certDir + "/" + viper.GetString("vereignCertFile") vereignPrivateKeyFilePath := certDir + "/" + viper.GetString("vereignCertKey") + maxMessageSize := viper.GetInt("maxMessageSize") + // fire the gRPC server in a goroutine go func() { err := server.StartGRPCServer(grpcAddress, certFilePath, privateKeyFilePath, vereignCertFilePath, - vereignPrivateKeyFilePath, dataStorageAddress) + vereignPrivateKeyFilePath, dataStorageAddress, maxMessageSize) if err != nil { log.Fatalf("failed to start gRPC server: %s", err) } diff --git a/server/configs.go b/server/configs.go index 6354275..e747732 100644 --- a/server/configs.go +++ b/server/configs.go @@ -20,6 +20,8 @@ func SetConfigValues() { viper.SetDefault("vereignCertFile", "vereign_ca.cer") viper.SetDefault("vereignCertKey", "vereign_ca.key") + viper.SetDefault("maxMessageSize", "32") + // Read Config File viper.SetConfigName("config") viper.AddConfigPath(".") diff --git a/server/server.go b/server/server.go index 8a58bd7..9183c2d 100644 --- a/server/server.go +++ b/server/server.go @@ -70,7 +70,7 @@ func authenticateClient(ctx context.Context, s *handler.KeyStorageServerImpl, in } sessionClient := &client.DataStorageClientImpl{} - sessionClient.SetUpClient(viamAuth, viper.GetString("dataStorageClientUrl"), pkgCertFile) + sessionClient.SetUpClient(viamAuth, viper.GetString("dataStorageClientUrl"), pkgCertFile, viper.GetInt("maxMessageSize")) defer sessionClient.CloseClient() if clientAuth.Uuid == viamAuth.Uuid { @@ -107,7 +107,7 @@ func unaryInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServ return handler1(ctx, req) } -func StartGRPCServer(address, certFilePath, privateKeyFilePath, vereignCertFilePath, vereignPrivateKeyFilePath, dataStorageAddress string) error { +func StartGRPCServer(address, certFilePath, privateKeyFilePath, vereignCertFilePath, vereignPrivateKeyFilePath, dataStorageAddress string, maxMessageSize int) error { pkgCertFile = certFilePath // create a listener on TCP port @@ -122,6 +122,7 @@ func StartGRPCServer(address, certFilePath, privateKeyFilePath, vereignCertFileP CertFilePath: certFilePath, VereignCertFilePath: vereignCertFilePath, VereignPrivateKeyFilePath: vereignPrivateKeyFilePath, + MaxMessageSize: maxMessageSize, } // Create the TLS credentials @@ -131,8 +132,11 @@ func StartGRPCServer(address, certFilePath, privateKeyFilePath, vereignCertFileP } // Create an array of gRPC options with the credentials - opts := []grpc.ServerOption{grpc.Creds(creds), - grpc.UnaryInterceptor(unaryInterceptor)} + opts := []grpc.ServerOption{ + grpc.Creds(creds), + grpc.UnaryInterceptor(unaryInterceptor), + grpc.MaxRecvMsgSize(viper.GetInt("maxMessageSize")*1024*1024), + } // create a gRPC server object grpcServer := grpc.NewServer(opts...) -- GitLab