diff --git a/src/main/java/org/prebid/server/auction/requestfactory/Ortb2ImplicitParametersResolver.java b/src/main/java/org/prebid/server/auction/requestfactory/Ortb2ImplicitParametersResolver.java index 90c049db606..423a9379775 100644 --- a/src/main/java/org/prebid/server/auction/requestfactory/Ortb2ImplicitParametersResolver.java +++ b/src/main/java/org/prebid/server/auction/requestfactory/Ortb2ImplicitParametersResolver.java @@ -24,12 +24,12 @@ import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.prebid.server.auction.aliases.BidderAliases; import org.prebid.server.auction.ImplicitParametersExtractor; import org.prebid.server.auction.IpAddressHelper; import org.prebid.server.auction.PriceGranularity; import org.prebid.server.auction.SecBrowsingTopicsResolver; import org.prebid.server.auction.TimeoutResolver; +import org.prebid.server.auction.aliases.BidderAliases; import org.prebid.server.auction.model.AuctionContext; import org.prebid.server.auction.model.Endpoint; import org.prebid.server.auction.model.IpAddress; @@ -126,7 +126,7 @@ public Ortb2ImplicitParametersResolver(boolean shouldCacheOnlyWinningBids, this.generateBidRequestId = generateBidRequestId; this.adServerCurrency = validateCurrency(Objects.requireNonNull(adServerCurrency)); this.blocklistedApps = Objects.requireNonNull(blocklistedApps); - this.serverInfo = ExtRequestPrebidServer.of(externalUrl, hostVendorId, datacenterRegion, null); + this.serverInfo = ExtRequestPrebidServer.of(externalUrl, hostVendorId, datacenterRegion, null, null); this.bidderCatalog = Objects.requireNonNull(bidderCatalog); this.paramsExtractor = Objects.requireNonNull(paramsExtractor); this.timeoutResolver = Objects.requireNonNull(timeoutResolver); @@ -192,6 +192,7 @@ public BidRequest resolve(BidRequest bidRequest, ext, bidRequest, ObjectUtils.defaultIfNull(populatedImps, imps), + auctionContext.getHttpRequest().getHttpMethod().name(), endpoint, auctionContext.getAccount()); @@ -722,6 +723,7 @@ private static boolean isUniqueIds(List imps) { private ExtRequest populateRequestExt(ExtRequest ext, BidRequest bidRequest, List imps, + String httpMethod, String endpoint, Account account) { @@ -742,7 +744,7 @@ private ExtRequest populateRequestExt(ExtRequest ext, ObjectUtil.getIfNotNull(prebid, ExtRequestPrebid::getCache))) .channel(ObjectUtils.defaultIfNull(updatedChannel, ObjectUtil.getIfNotNull(prebid, ExtRequestPrebid::getChannel))) - .server(serverInfo.with(endpoint)) + .server(serverInfo.with(httpMethod, endpoint)) .build()); final Map extProperties = ObjectUtil.getIfNotNull(ext, ExtRequest::getProperties); diff --git a/src/main/java/org/prebid/server/proto/openrtb/ext/request/ExtRequestPrebidServer.java b/src/main/java/org/prebid/server/proto/openrtb/ext/request/ExtRequestPrebidServer.java index 8a874fcf32e..2a6c75bc918 100644 --- a/src/main/java/org/prebid/server/proto/openrtb/ext/request/ExtRequestPrebidServer.java +++ b/src/main/java/org/prebid/server/proto/openrtb/ext/request/ExtRequestPrebidServer.java @@ -14,13 +14,16 @@ public class ExtRequestPrebidServer { String datacenter; + String httpMethod; + String endpoint; - public ExtRequestPrebidServer with(String endpoint) { + public ExtRequestPrebidServer with(String httpMethod, String endpoint) { return ExtRequestPrebidServer.of( this.externalUrl, this.gvlId, this.datacenter, + httpMethod, endpoint); } } diff --git a/src/test/java/org/prebid/server/auction/requestfactory/Ortb2ImplicitParametersResolverTest.java b/src/test/java/org/prebid/server/auction/requestfactory/Ortb2ImplicitParametersResolverTest.java index 41fa98842e7..d930a489c72 100644 --- a/src/test/java/org/prebid/server/auction/requestfactory/Ortb2ImplicitParametersResolverTest.java +++ b/src/test/java/org/prebid/server/auction/requestfactory/Ortb2ImplicitParametersResolverTest.java @@ -18,6 +18,7 @@ import com.iab.openrtb.request.SupplyChain; import com.iab.openrtb.request.User; import com.iab.openrtb.request.Video; +import io.vertx.core.http.HttpMethod; import org.assertj.core.api.InstanceOfAssertFactories; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -138,6 +139,7 @@ public void setUp() { defaultBidRequest = BidRequest.builder().build(); auctionContext = givenAuctionContext(HttpRequestContext.builder() + .httpMethod(HttpMethod.POST) .headers(CaseInsensitiveMultiMap.empty()) .build()); @@ -299,6 +301,7 @@ public void shouldNotImplicitlyResolveIpIfIpv6IsPassed() { public void shouldNotSetDeviceDntIfHeaderHasInvalidValue() { // given final HttpRequestContext httpRequest = HttpRequestContext.builder() + .httpMethod(HttpMethod.POST) .headers(CaseInsensitiveMultiMap.builder() .add("DNT", "invalid") .build()) @@ -316,6 +319,7 @@ public void shouldNotSetDeviceDntIfHeaderHasInvalidValue() { public void shouldSetDeviceDntIfHeaderExists() { // given final HttpRequestContext httpRequest = HttpRequestContext.builder() + .httpMethod(HttpMethod.POST) .headers(CaseInsensitiveMultiMap.builder() .add("DNT", "1") .build()) @@ -333,6 +337,7 @@ public void shouldSetDeviceDntIfHeaderExists() { public void shouldOverrideDeviceDntIfHeaderExists() { // given final HttpRequestContext httpRequest = HttpRequestContext.builder() + .httpMethod(HttpMethod.POST) .headers(CaseInsensitiveMultiMap.builder() .add("DNT", "0") .build()) @@ -2547,7 +2552,12 @@ public void shouldPassExtPrebidServer() { .extracting(BidRequest::getExt) .extracting(ExtRequest::getPrebid) .extracting(ExtRequestPrebid::getServer) - .isEqualTo(ExtRequestPrebidServer.of("https://external.url/", 0, "datacenter-region", ENDPOINT)); + .isEqualTo(ExtRequestPrebidServer.of( + "https://external.url/", + 0, + "datacenter-region", + HttpMethod.POST.name(), + ENDPOINT)); } @Test diff --git a/src/test/java/org/prebid/server/bidder/appnexus/AppnexusBidderTest.java b/src/test/java/org/prebid/server/bidder/appnexus/AppnexusBidderTest.java index 445aa552a1b..cb5da0f1e4b 100644 --- a/src/test/java/org/prebid/server/bidder/appnexus/AppnexusBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/appnexus/AppnexusBidderTest.java @@ -13,6 +13,7 @@ import com.iab.openrtb.response.Bid; import com.iab.openrtb.response.BidResponse; import com.iab.openrtb.response.SeatBid; +import io.vertx.core.http.HttpMethod; import org.junit.jupiter.api.Test; import org.prebid.server.VertxTest; import org.prebid.server.bidder.appnexus.proto.AppnexusBidExt; @@ -553,7 +554,12 @@ public void makeHttpRequestsShouldUpdateExtAppnexusIfAmpRequest() { // given final BidRequest bidRequest = givenBidRequest( request -> request.ext(ExtRequest.of(ExtRequestPrebid.builder() - .server(ExtRequestPrebidServer.of(null, null, null, openrtb2_amp.value())) + .server(ExtRequestPrebidServer.of( + null, + null, + null, + HttpMethod.GET.name(), + openrtb2_amp.value())) .build())), givenImp(givenExt(identity()))); @@ -578,7 +584,12 @@ public void makeHttpRequestsShouldUpdateExtAppnexusIfVideoRequest() { // given final BidRequest bidRequest = givenBidRequest( request -> request.ext(ExtRequest.of(ExtRequestPrebid.builder() - .server(ExtRequestPrebidServer.of(null, null, null, openrtb2_video.value())) + .server(ExtRequestPrebidServer.of( + null, + null, + null, + HttpMethod.POST.name(), + openrtb2_video.value())) .build())), givenImp(givenExt(identity()))); @@ -624,7 +635,12 @@ public void makeHttpRequestsShouldSplitImpsByPods() { // given final BidRequest bidRequest = givenBidRequest( request -> request.ext(ExtRequest.of(ExtRequestPrebid.builder() - .server(ExtRequestPrebidServer.of(null, null, null, openrtb2_video.value())) + .server(ExtRequestPrebidServer.of( + null, + null, + null, + HttpMethod.POST.name(), + openrtb2_video.value())) .build())), IntStream.range(0, 42) .mapToObj(i -> givenImp( @@ -650,7 +666,12 @@ public void makeHttpRequestsShouldGenerateProperAdPodIds() { // given final BidRequest bidRequest = givenBidRequest( request -> request.ext(ExtRequest.of(ExtRequestPrebid.builder() - .server(ExtRequestPrebidServer.of(null, null, null, openrtb2_video.value())) + .server(ExtRequestPrebidServer.of( + null, + null, + null, + HttpMethod.POST.name(), + openrtb2_video.value())) .build())), givenImp(imp -> imp.id("1_random"), givenExt(ext -> ext.generateAdPodId(true))), givenImp(imp -> imp.id("1_random"), givenExt(ext -> ext.generateAdPodId(true))), diff --git a/src/test/java/org/prebid/server/bidder/nativery/NativeryBidderTest.java b/src/test/java/org/prebid/server/bidder/nativery/NativeryBidderTest.java index ffc0a8a1d9f..707fd40d27a 100644 --- a/src/test/java/org/prebid/server/bidder/nativery/NativeryBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/nativery/NativeryBidderTest.java @@ -8,6 +8,7 @@ import com.iab.openrtb.response.Bid; import com.iab.openrtb.response.BidResponse; import com.iab.openrtb.response.SeatBid; +import io.vertx.core.http.HttpMethod; import org.junit.jupiter.api.Test; import org.prebid.server.VertxTest; import org.prebid.server.auction.model.Endpoint; @@ -140,7 +141,7 @@ public void makeHttpRequestsShouldPreserveOriginalExtFields() { public void makeHttpRequestsShouldSetExtWithAmpTrue() { // given final ExtRequestPrebidServer server = ExtRequestPrebidServer.of( - null, null, null, Endpoint.openrtb2_amp.value()); + null, null, null, HttpMethod.POST.name(), Endpoint.openrtb2_amp.value()); final ExtRequestPrebid prebid = ExtRequestPrebid.builder() .server(server) .build(); diff --git a/src/test/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidderTest.java b/src/test/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidderTest.java index 84a31090509..5a4821c1dc2 100644 --- a/src/test/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidderTest.java @@ -466,6 +466,7 @@ public void makeHttpRequestsShouldPreserveExtPrebidServer() { "http://localhost:8080", 1, "dc-test", + "POST", "/openrtb2/auction"); final ExtRequest extRequest = ExtRequest.of(ExtRequestPrebid.builder() diff --git a/src/test/java/org/prebid/server/bidder/smaato/SmaatoBidderTest.java b/src/test/java/org/prebid/server/bidder/smaato/SmaatoBidderTest.java index d34fd2812a0..88a3e2b159e 100644 --- a/src/test/java/org/prebid/server/bidder/smaato/SmaatoBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/smaato/SmaatoBidderTest.java @@ -18,6 +18,7 @@ import com.iab.openrtb.response.BidResponse; import com.iab.openrtb.response.SeatBid; import io.vertx.core.MultiMap; +import io.vertx.core.http.HttpMethod; import org.apache.commons.lang3.ObjectUtils; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -941,6 +942,7 @@ private static BidRequest givenVideoBidRequest(UnaryOperator imp private static BidRequest givenVideoBidRequest( UnaryOperator bidRequestCustomizer, UnaryOperator... impCustomizers) { + return bidRequestCustomizer.apply(BidRequest.builder() .site(Site.builder().build()) .app(App.builder().build()) @@ -948,7 +950,12 @@ private static BidRequest givenVideoBidRequest( .map(SmaatoBidderTest::givenVideoImp) .toList())) .ext(ExtRequest.of(ExtRequestPrebid.builder() - .server(ExtRequestPrebidServer.of(null, null, null, Endpoint.openrtb2_video.value())) + .server(ExtRequestPrebidServer.of( + null, + null, + null, + HttpMethod.POST.name(), + Endpoint.openrtb2_video.value())) .build())) .build(); } diff --git a/src/test/java/org/prebid/server/bidder/taboola/TaboolaBidderTest.java b/src/test/java/org/prebid/server/bidder/taboola/TaboolaBidderTest.java index a185687bb5f..d7ccb952158 100644 --- a/src/test/java/org/prebid/server/bidder/taboola/TaboolaBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/taboola/TaboolaBidderTest.java @@ -606,7 +606,7 @@ private static BidRequest givenBidRequest(UnaryOperator