diff --git a/docstore-metrics/build.gradle.kts b/docstore-metrics/build.gradle.kts
index e7e1f67..9942cfe 100644
--- a/docstore-metrics/build.gradle.kts
+++ b/docstore-metrics/build.gradle.kts
@@ -11,5 +11,6 @@ dependencies {
api(libs.hypertrace.documentStore)
api(project(":service-framework-spi"))
+ api(platform("com.fasterxml.jackson:jackson-bom:2.16.0"))
implementation(project(":platform-metrics"))
}
diff --git a/owasp-suppressions.xml b/owasp-suppressions.xml
index 313ecab..e806632 100644
--- a/owasp-suppressions.xml
+++ b/owasp-suppressions.xml
@@ -8,14 +8,7 @@
cpe:/a:grpc:grpc
cpe:/a:utils_project:utils
-
-
- ^pkg:maven/com\.fasterxml\.jackson\.core/jackson\-databind@.*$
- CVE-2023-35116
-
-
+
^pkg:maven/org\.eclipse\.jetty/jetty\-servlets@9.4.53\..*$
CVE-2023-36479
+
+
+ ^pkg:maven/io\.grpc/grpc\-.*@.*$
+ CVE-2023-44487
+
+
+
+ ^pkg:maven/io\.netty/netty.*@.*$
+ CVE-2023-4586
+
\ No newline at end of file
diff --git a/platform-grpc-service-framework/build.gradle.kts b/platform-grpc-service-framework/build.gradle.kts
index 23a9891..9061f16 100644
--- a/platform-grpc-service-framework/build.gradle.kts
+++ b/platform-grpc-service-framework/build.gradle.kts
@@ -7,10 +7,10 @@ plugins {
dependencies {
api(project(":platform-service-framework"))
- api(platform("io.grpc:grpc-bom:1.57.2"))
+ api(platform("io.grpc:grpc-bom:1.59.1"))
api("io.grpc:grpc-api")
api("io.grpc:grpc-services")
- api("org.hypertrace.core.grpcutils:grpc-client-utils:0.12.6")
+ api("org.hypertrace.core.grpcutils:grpc-client-utils:0.12.7")
api("com.typesafe:config:1.4.2")
api(project(":service-framework-spi"))
@@ -18,6 +18,8 @@ dependencies {
compileOnly("org.projectlombok:lombok:1.18.24")
implementation(project(":platform-metrics"))
+ implementation("io.grpc:grpc-inprocess")
+ implementation("io.grpc:grpc-netty")
implementation("org.slf4j:slf4j-api:1.7.36")
- implementation("org.hypertrace.core.grpcutils:grpc-server-utils:0.12.6")
+ implementation("org.hypertrace.core.grpcutils:grpc-server-utils:0.12.7")
}
diff --git a/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServerDefinition.java b/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServerDefinition.java
index f08d614..5b77dda 100644
--- a/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServerDefinition.java
+++ b/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServerDefinition.java
@@ -3,16 +3,20 @@
import io.grpc.ServerInterceptor;
import java.util.Collection;
import java.util.List;
+import lombok.AccessLevel;
+import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Singular;
import lombok.Value;
@Value
+@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder
public class GrpcPlatformServerDefinition {
String name;
int port;
int maxInboundMessageSize;
+ @Builder.Default int maxRstPerMinute = 500;
@Singular Collection serviceFactories;
@Singular List serverInterceptors;
}
diff --git a/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java b/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java
index de0670e..54a8309 100644
--- a/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java
+++ b/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java
@@ -11,6 +11,7 @@
import io.grpc.health.v1.HealthGrpc;
import io.grpc.health.v1.HealthGrpc.HealthBlockingStub;
import io.grpc.inprocess.InProcessServerBuilder;
+import io.grpc.netty.NettyServerBuilder;
import io.grpc.protobuf.services.HealthStatusManager;
import io.micrometer.core.instrument.binder.grpc.MetricCollectingClientInterceptor;
import io.micrometer.core.instrument.binder.grpc.MetricCollectingServerInterceptor;
@@ -233,11 +234,14 @@ protected abstract GrpcServiceContainerEnvironment buildContainerEnvironment(
InProcessGrpcChannelRegistry channelRegistry, HealthStatusManager healthStatusManager);
private ServerBuilder> initializeBuilder(GrpcPlatformServerDefinition serverDefinition) {
- ServerBuilder> builder = ServerBuilder.forPort(serverDefinition.getPort());
+ NettyServerBuilder builder = NettyServerBuilder.forPort(serverDefinition.getPort());
if (serverDefinition.getMaxInboundMessageSize() > 0) {
builder.maxInboundMessageSize(serverDefinition.getMaxInboundMessageSize());
}
+ if (serverDefinition.getMaxRstPerMinute() > 0) {
+ builder.maxRstFramesPerWindow(serverDefinition.getMaxRstPerMinute(), 60);
+ }
// add micrometer-grpc interceptor to collect server metrics.
builder.intercept(
new MetricCollectingServerInterceptor(PlatformMetricsRegistry.getMeterRegistry()));
@@ -248,6 +252,7 @@ private ServerBuilder> initializeBuilder(GrpcPlatformServerDefinition serverDe
@Value
private static class ConstructedServer {
+
String name;
Server server;
}
diff --git a/platform-http-service-framework/build.gradle.kts b/platform-http-service-framework/build.gradle.kts
index 3736869..679bab9 100644
--- a/platform-http-service-framework/build.gradle.kts
+++ b/platform-http-service-framework/build.gradle.kts
@@ -5,7 +5,7 @@ plugins {
dependencies {
api(project(":platform-service-framework"))
- api("org.hypertrace.core.grpcutils:grpc-client-utils:0.12.6")
+ api("org.hypertrace.core.grpcutils:grpc-client-utils:0.12.7")
api("com.typesafe:config:1.4.2")
api("javax.servlet:javax.servlet-api:4.0.1")
api("com.google.inject:guice:5.1.0")
diff --git a/platform-service-framework/build.gradle.kts b/platform-service-framework/build.gradle.kts
index bc811b4..ca663f3 100644
--- a/platform-service-framework/build.gradle.kts
+++ b/platform-service-framework/build.gradle.kts
@@ -11,6 +11,7 @@ tasks.test {
dependencies {
api(project(":service-framework-spi"))
+ api(platform("com.fasterxml.jackson:jackson-bom:2.16.0"))
implementation(project(":platform-metrics"))
api("org.slf4j:slf4j-api:1.7.36")
@@ -18,9 +19,6 @@ dependencies {
// Use for thread dump servlet
implementation("io.dropwizard.metrics:metrics-servlets:4.2.16")
- constraints {
- implementation("com.fasterxml.jackson.core:jackson-databind:2.15.2")
- }
implementation("org.eclipse.jetty:jetty-servlet:9.4.53.v20231009")
// Use for metrics servlet