From 34e1b84726c577a37bde1c74439766e12074540d Mon Sep 17 00:00:00 2001 From: Alex Maltsev Date: Fri, 2 Jan 2026 14:55:57 +0200 Subject: [PATCH 1/3] Added deprecated video endpoint. --- .../ApplicationServerConfiguration.java | 15 ++++++++- .../application/DeprecatedResource.java | 33 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/prebid/server/vertx/verticles/server/application/DeprecatedResource.java diff --git a/src/main/java/org/prebid/server/spring/config/server/application/ApplicationServerConfiguration.java b/src/main/java/org/prebid/server/spring/config/server/application/ApplicationServerConfiguration.java index c6ae167ae94..e31cf58cb67 100644 --- a/src/main/java/org/prebid/server/spring/config/server/application/ApplicationServerConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/server/application/ApplicationServerConfiguration.java @@ -39,9 +39,9 @@ import org.prebid.server.handler.NoCacheHandler; import org.prebid.server.handler.NotificationEventHandler; import org.prebid.server.handler.OptoutHandler; +import org.prebid.server.handler.PostVtrackHandler; import org.prebid.server.handler.SetuidHandler; import org.prebid.server.handler.StatusHandler; -import org.prebid.server.handler.PostVtrackHandler; import org.prebid.server.handler.info.BidderDetailsHandler; import org.prebid.server.handler.info.BiddersHandler; import org.prebid.server.handler.info.filters.BaseOnlyBidderInfoFilterStrategy; @@ -56,6 +56,7 @@ import org.prebid.server.json.JacksonMapper; import org.prebid.server.log.HttpInteractionLogger; import org.prebid.server.metric.Metrics; +import org.prebid.server.model.Endpoint; import org.prebid.server.optout.GoogleRecaptchaVerifier; import org.prebid.server.privacy.HostVendorTcfDefinerService; import org.prebid.server.settings.ApplicationSettings; @@ -64,8 +65,10 @@ import org.prebid.server.validation.BidderParamValidator; import org.prebid.server.version.PrebidVersionProvider; import org.prebid.server.vertx.verticles.VerticleDefinition; +import org.prebid.server.vertx.verticles.server.HttpEndpoint; import org.prebid.server.vertx.verticles.server.ServerVerticle; import org.prebid.server.vertx.verticles.server.application.ApplicationResource; +import org.prebid.server.vertx.verticles.server.application.DeprecatedResource; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -271,6 +274,7 @@ AmpHandler openrtbAmpHandler( } @Bean + @ConditionalOnProperty(value = "video.enable-deprecated-endpoint", havingValue = "true") VideoHandler openrtbVideoHandler( VideoRequestFactory videoRequestFactory, VideoResponseFactory videoResponseFactory, @@ -297,6 +301,15 @@ VideoHandler openrtbVideoHandler( mapper); } + @Bean + @ConditionalOnProperty(value = "video.enable-deprecated-endpoint", havingValue = "false", matchIfMissing = true) + ApplicationResource deprecatedAuctionResource() { + return new DeprecatedResource( + "The video endpoint is deprecated and will be removed in 5.0." + + " You may re-enable it via [video.enable-deprecated-endpoint]", + HttpEndpoint.of(HttpMethod.POST, Endpoint.openrtb2_video.value())); + } + @Bean StatusHandler statusHandler(List healthCheckers, JacksonMapper mapper) { healthCheckers.stream() diff --git a/src/main/java/org/prebid/server/vertx/verticles/server/application/DeprecatedResource.java b/src/main/java/org/prebid/server/vertx/verticles/server/application/DeprecatedResource.java new file mode 100644 index 00000000000..f87c53c9944 --- /dev/null +++ b/src/main/java/org/prebid/server/vertx/verticles/server/application/DeprecatedResource.java @@ -0,0 +1,33 @@ +package org.prebid.server.vertx.verticles.server.application; + +import io.netty.handler.codec.http.HttpResponseStatus; +import io.vertx.ext.web.RoutingContext; +import org.apache.commons.lang3.StringUtils; +import org.prebid.server.vertx.verticles.server.HttpEndpoint; + +import java.util.Arrays; +import java.util.List; + +public class DeprecatedResource implements ApplicationResource { + + private final String message; + + private final List endpoints; + + public DeprecatedResource(String message, HttpEndpoint... endpoints) { + this.message = message; + this.endpoints = Arrays.asList(endpoints); + } + + @Override + public List endpoints() { + return endpoints; + } + + @Override + public void handle(RoutingContext event) { + event.response() + .setStatusCode(HttpResponseStatus.GONE.code()) + .end(StringUtils.defaultString(message)); + } +} From f2e4b3dbb9b40963f1a26df3217d4be06d472f36 Mon Sep 17 00:00:00 2001 From: Alex Maltsev Date: Mon, 13 Jul 2026 14:49:46 +0300 Subject: [PATCH 2/3] Fixed bean naming. --- .../server/application/ApplicationServerConfiguration.java | 2 +- src/main/resources/application.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/prebid/server/spring/config/server/application/ApplicationServerConfiguration.java b/src/main/java/org/prebid/server/spring/config/server/application/ApplicationServerConfiguration.java index e31cf58cb67..2ec77dfe359 100644 --- a/src/main/java/org/prebid/server/spring/config/server/application/ApplicationServerConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/server/application/ApplicationServerConfiguration.java @@ -303,7 +303,7 @@ VideoHandler openrtbVideoHandler( @Bean @ConditionalOnProperty(value = "video.enable-deprecated-endpoint", havingValue = "false", matchIfMissing = true) - ApplicationResource deprecatedAuctionResource() { + ApplicationResource deprecatedOpenrtbVideoHandler() { return new DeprecatedResource( "The video endpoint is deprecated and will be removed in 5.0." + " You may re-enable it via [video.enable-deprecated-endpoint]", diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 55822047954..a090c353d77 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -131,6 +131,7 @@ auction: category-mapping-enabled: false strict-app-site-dooh: true video: + enable-deprecated-endpoint: false stored-request-required: false stored-requests-timeout-ms: 90 event: From 78055baa7b81567aa0a2b8d1302c85b202af2a99 Mon Sep 17 00:00:00 2001 From: Alex Maltsev Date: Mon, 13 Jul 2026 16:39:01 +0300 Subject: [PATCH 3/3] Final fixes. --- .../server/application/ApplicationServerConfiguration.java | 4 ++-- .../org/prebid/server/it/test-application.properties | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/prebid/server/spring/config/server/application/ApplicationServerConfiguration.java b/src/main/java/org/prebid/server/spring/config/server/application/ApplicationServerConfiguration.java index 3e55722d144..b16d1397cab 100644 --- a/src/main/java/org/prebid/server/spring/config/server/application/ApplicationServerConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/server/application/ApplicationServerConfiguration.java @@ -305,8 +305,8 @@ VideoHandler openrtbVideoHandler( @ConditionalOnProperty(value = "video.enable-deprecated-endpoint", havingValue = "false", matchIfMissing = true) ApplicationResource deprecatedOpenrtbVideoHandler() { return new DeprecatedResource( - "The video endpoint is deprecated and will be removed in 5.0." + - " You may re-enable it via [video.enable-deprecated-endpoint]", + "The video endpoint is deprecated and will be removed in 5.0." + + " You may re-enable it via [video.enable-deprecated-endpoint]", HttpEndpoint.of(HttpMethod.POST, Endpoint.openrtb2_video.value())); } diff --git a/src/test/resources/org/prebid/server/it/test-application.properties b/src/test/resources/org/prebid/server/it/test-application.properties index 1569de649f5..3c006fb21f6 100644 --- a/src/test/resources/org/prebid/server/it/test-application.properties +++ b/src/test/resources/org/prebid/server/it/test-application.properties @@ -710,6 +710,7 @@ http-client.circuit-breaker.opening-interval-ms=1000 http-client.circuit-breaker.closing-interval-ms=10000 auction.tmax-upstream-response-time=0 auction.category-mapping-enabled=true +video.enable-deprecated-endpoint=true currency-converter.external-rates.enabled=true currency-converter.external-rates.url=http://localhost:8090/currency-rates amp.custom-targeting=rubicon