diff --git a/extra/modules/greenbids-real-time-data/src/test/java/org/prebid/server/hooks/modules/greenbids/real/time/data/core/GreenbidsPayloadUpdaterTest.java b/extra/modules/greenbids-real-time-data/src/test/java/org/prebid/server/hooks/modules/greenbids/real/time/data/core/GreenbidsPayloadUpdaterTest.java index 36ed3f8e980..261742146fa 100644 --- a/extra/modules/greenbids-real-time-data/src/test/java/org/prebid/server/hooks/modules/greenbids/real/time/data/core/GreenbidsPayloadUpdaterTest.java +++ b/extra/modules/greenbids-real-time-data/src/test/java/org/prebid/server/hooks/modules/greenbids/real/time/data/core/GreenbidsPayloadUpdaterTest.java @@ -56,5 +56,4 @@ public void updateShouldRemoveImpFromUpdateBidRequestWhenAllBiddersFiltered() { assertThat(result.getImp()).isEmpty(); } - } diff --git a/extra/modules/greenbids-real-time-data/src/test/java/org/prebid/server/hooks/modules/greenbids/real/time/data/core/ModelCacheTest.java b/extra/modules/greenbids-real-time-data/src/test/java/org/prebid/server/hooks/modules/greenbids/real/time/data/core/ModelCacheTest.java index 2ceeaa14e43..5e9d97fe9cd 100644 --- a/extra/modules/greenbids-real-time-data/src/test/java/org/prebid/server/hooks/modules/greenbids/real/time/data/core/ModelCacheTest.java +++ b/extra/modules/greenbids-real-time-data/src/test/java/org/prebid/server/hooks/modules/greenbids/real/time/data/core/ModelCacheTest.java @@ -187,5 +187,4 @@ public void getShouldThrowExceptionWhenBucketNotFound() { assertThat(ar.cause().getMessage()).contains("Bucket not found"); }); } - } diff --git a/extra/modules/live-intent-omni-channel-identity/src/main/java/org/prebid/server/hooks/modules/liveintent/omni/channel/identity/v1/hooks/LiveIntentOmniChannelIdentityProcessedAuctionRequestHook.java b/extra/modules/live-intent-omni-channel-identity/src/main/java/org/prebid/server/hooks/modules/liveintent/omni/channel/identity/v1/hooks/LiveIntentOmniChannelIdentityProcessedAuctionRequestHook.java index 3afdb146018..47fb66db407 100644 --- a/extra/modules/live-intent-omni-channel-identity/src/main/java/org/prebid/server/hooks/modules/liveintent/omni/channel/identity/v1/hooks/LiveIntentOmniChannelIdentityProcessedAuctionRequestHook.java +++ b/extra/modules/live-intent-omni-channel-identity/src/main/java/org/prebid/server/hooks/modules/liveintent/omni/channel/identity/v1/hooks/LiveIntentOmniChannelIdentityProcessedAuctionRequestHook.java @@ -72,7 +72,7 @@ public LiveIntentOmniChannelIdentityProcessedAuctionRequestHook(LiveIntentOmniCh double logSamplingRate) { this.config = Objects.requireNonNull(config); - HttpUtil.validateUrlSyntax(config.getIdentityResolutionEndpoint()); + HttpUtil.validateUrl(config.getIdentityResolutionEndpoint()); this.mapper = Objects.requireNonNull(mapper); this.httpClient = Objects.requireNonNull(httpClient); this.logSamplingRate = logSamplingRate; diff --git a/extra/modules/pb-response-correction/src/main/java/org/prebid/server/hooks/modules/pb/response/correction/core/correction/appvideohtml/AppVideoHtmlCorrection.java b/extra/modules/pb-response-correction/src/main/java/org/prebid/server/hooks/modules/pb/response/correction/core/correction/appvideohtml/AppVideoHtmlCorrection.java index 5b3ee918e86..73e1e30574d 100644 --- a/extra/modules/pb-response-correction/src/main/java/org/prebid/server/hooks/modules/pb/response/correction/core/correction/appvideohtml/AppVideoHtmlCorrection.java +++ b/extra/modules/pb-response-correction/src/main/java/org/prebid/server/hooks/modules/pb/response/correction/core/correction/appvideohtml/AppVideoHtmlCorrection.java @@ -134,5 +134,4 @@ private ExtBidPrebid parseExtBidPrebid(Bid bid) { return null; } } - } diff --git a/extra/modules/pb-response-correction/src/test/java/org/prebid/server/hooks/modules/pb/response/correction/core/correction/appvideohtml/AppVideoHtmlCorrectionProducerTest.java b/extra/modules/pb-response-correction/src/test/java/org/prebid/server/hooks/modules/pb/response/correction/core/correction/appvideohtml/AppVideoHtmlCorrectionProducerTest.java index 9a628f90029..d2280558ee8 100644 --- a/extra/modules/pb-response-correction/src/test/java/org/prebid/server/hooks/modules/pb/response/correction/core/correction/appvideohtml/AppVideoHtmlCorrectionProducerTest.java +++ b/extra/modules/pb-response-correction/src/test/java/org/prebid/server/hooks/modules/pb/response/correction/core/correction/appvideohtml/AppVideoHtmlCorrectionProducerTest.java @@ -62,5 +62,4 @@ public void shouldProduceReturnTrueWhenConfigIsEnabledAndBidRequestHasApp() { private static Config givenConfig(boolean enabled) { return Config.of(true, AppVideoHtmlConfig.of(enabled, null)); } - } diff --git a/extra/modules/pb-richmedia-filter/src/main/java/org/prebid/server/hooks/modules/pb/richmedia/filter/config/PbRichmediaFilterModuleConfiguration.java b/extra/modules/pb-richmedia-filter/src/main/java/org/prebid/server/hooks/modules/pb/richmedia/filter/config/PbRichmediaFilterModuleConfiguration.java index fe3a8a37ac6..f463f0f9cef 100644 --- a/extra/modules/pb-richmedia-filter/src/main/java/org/prebid/server/hooks/modules/pb/richmedia/filter/config/PbRichmediaFilterModuleConfiguration.java +++ b/extra/modules/pb-richmedia-filter/src/main/java/org/prebid/server/hooks/modules/pb/richmedia/filter/config/PbRichmediaFilterModuleConfiguration.java @@ -34,5 +34,4 @@ PbRichmediaFilterModule pbRichmediaFilterModule( new BidResponsesMraidFilter(), new ModuleConfigResolver(mapper, globalProperties)))); } - } diff --git a/extra/modules/pb-richmedia-filter/src/main/java/org/prebid/server/hooks/modules/pb/richmedia/filter/core/BidResponsesMraidFilter.java b/extra/modules/pb-richmedia-filter/src/main/java/org/prebid/server/hooks/modules/pb/richmedia/filter/core/BidResponsesMraidFilter.java index 6cca35cdf7b..b8494d1103a 100644 --- a/extra/modules/pb-richmedia-filter/src/main/java/org/prebid/server/hooks/modules/pb/richmedia/filter/core/BidResponsesMraidFilter.java +++ b/extra/modules/pb-richmedia-filter/src/main/java/org/prebid/server/hooks/modules/pb/richmedia/filter/core/BidResponsesMraidFilter.java @@ -64,5 +64,4 @@ public MraidFilterResult filterByPattern(String mraidScriptPattern, return MraidFilterResult.of(filteredResponses, analyticsResults); } - } diff --git a/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/core/BidResponsesMraidFilterTest.java b/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/core/BidResponsesMraidFilterTest.java index 02add5a0aad..dd7e336a834 100644 --- a/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/core/BidResponsesMraidFilterTest.java +++ b/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/core/BidResponsesMraidFilterTest.java @@ -103,5 +103,4 @@ private static BidderBid givenBid(String impId, String adm) { private static BidderError givenError(String... rejectedImps) { return BidderError.of("Invalid bid", BidderError.Type.invalid_bid, Set.of(rejectedImps)); } - } diff --git a/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/core/ModuleConfigResolverTest.java b/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/core/ModuleConfigResolverTest.java index 8dbb33aa35e..666f1289091 100644 --- a/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/core/ModuleConfigResolverTest.java +++ b/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/core/ModuleConfigResolverTest.java @@ -99,5 +99,4 @@ public void resolveShouldReturnGlobalConfigWhenAccountConfigMissingProperties() // then assertThat(actualProperties).isEqualTo(GLOBAL_PROPERTIES); } - } diff --git a/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/v1/PbRichmediaFilterAllProcessedBidResponsesHookTest.java b/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/v1/PbRichmediaFilterAllProcessedBidResponsesHookTest.java index b5707a9fe22..0465336a65a 100644 --- a/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/v1/PbRichmediaFilterAllProcessedBidResponsesHookTest.java +++ b/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/v1/PbRichmediaFilterAllProcessedBidResponsesHookTest.java @@ -280,5 +280,4 @@ private static AnalyticsResult givenAnalyticsResult(String bidder, String... rej Bid.builder().id("bid-" + impId).impid(impId).build()).build()).toList(), RESPONSE_REJECTED_INVALID_CREATIVE); } - } diff --git a/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/v1/PbRichmediaFilterModuleTest.java b/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/v1/PbRichmediaFilterModuleTest.java index 9146788e0c1..345a0cedff7 100644 --- a/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/v1/PbRichmediaFilterModuleTest.java +++ b/extra/modules/pb-richmedia-filter/src/test/java/org/prebid/server/hooks/modules/pb/richmedia/filter/v1/PbRichmediaFilterModuleTest.java @@ -11,5 +11,4 @@ public void shouldHaveValidInitialConfigs() { // given and when and then assertThat(PbRichmediaFilterModule.CODE).isEqualTo("pb-richmedia-filter"); } - } diff --git a/extra/modules/pb-rule-engine/src/test/java/org/prebid/server/hooks/modules/rule/engine/core/request/schema/functions/DomainFunctionTest.java b/extra/modules/pb-rule-engine/src/test/java/org/prebid/server/hooks/modules/rule/engine/core/request/schema/functions/DomainFunctionTest.java index 8183ce51dc2..02f6ae4fad4 100644 --- a/extra/modules/pb-rule-engine/src/test/java/org/prebid/server/hooks/modules/rule/engine/core/request/schema/functions/DomainFunctionTest.java +++ b/extra/modules/pb-rule-engine/src/test/java/org/prebid/server/hooks/modules/rule/engine/core/request/schema/functions/DomainFunctionTest.java @@ -132,5 +132,4 @@ private static SchemaFunctionArguments givenFunc null, RequestRuleContext.of(AuctionContext.builder().build(), Granularity.Request.instance(), "datacenter")); } - } diff --git a/extra/pom.xml b/extra/pom.xml index 1a43c1b8ace..873ce0e65c3 100644 --- a/extra/pom.xml +++ b/extra/pom.xml @@ -39,9 +39,7 @@ 4.4 1.27.1 3.6.1 - 1.10.0 2.1 - 4.5.14 5.5.1 6.8.0 1.5.6 @@ -137,23 +135,6 @@ commons-math3 ${commons-math3.version} - - commons-validator - commons-validator - ${commons-validator.version} - - - - org.apache.httpcomponents - httpclient - ${httpclient.version} - - - commons-logging - commons-logging - - - com.github.seancfoley ipaddress diff --git a/pom.xml b/pom.xml index 8ef80350c78..86fa067ddfb 100644 --- a/pom.xml +++ b/pom.xml @@ -80,6 +80,10 @@ io.vertx vertx-auth-common + + io.vertx + vertx-uri-template + com.ongres.scram client @@ -110,14 +114,6 @@ org.apache.commons commons-math3 - - org.apache.httpcomponents - httpclient - - - commons-validator - commons-validator - com.github.seancfoley ipaddress diff --git a/src/main/java/org/prebid/server/analytics/reporter/liveintent/LiveIntentAnalyticsReporter.java b/src/main/java/org/prebid/server/analytics/reporter/liveintent/LiveIntentAnalyticsReporter.java index d404a12397e..aee542e7e89 100644 --- a/src/main/java/org/prebid/server/analytics/reporter/liveintent/LiveIntentAnalyticsReporter.java +++ b/src/main/java/org/prebid/server/analytics/reporter/liveintent/LiveIntentAnalyticsReporter.java @@ -6,7 +6,6 @@ import com.iab.openrtb.response.SeatBid; import io.vertx.core.Future; import org.apache.commons.collections4.CollectionUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.analytics.AnalyticsReporter; import org.prebid.server.analytics.model.AuctionEvent; import org.prebid.server.analytics.model.NotificationEvent; @@ -27,9 +26,9 @@ import org.prebid.server.log.LoggerFactory; import org.prebid.server.proto.openrtb.ext.request.ExtRequest; import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebid; +import org.prebid.server.util.Uri; import org.prebid.server.vertx.httpclient.HttpClient; -import java.net.URISyntaxException; import java.util.Collection; import java.util.List; import java.util.Objects; @@ -43,6 +42,7 @@ public class LiveIntentAnalyticsReporter implements AnalyticsReporter { private final HttpClient httpClient; private final LiveIntentAnalyticsProperties properties; + private final Uri analyticsEndpoint; private final JacksonMapper jacksonMapper; public LiveIntentAnalyticsReporter( @@ -52,6 +52,7 @@ public LiveIntentAnalyticsReporter( this.httpClient = Objects.requireNonNull(httpClient); this.properties = Objects.requireNonNull(properties); + this.analyticsEndpoint = Uri.of(properties.getAnalyticsEndpoint()); this.jacksonMapper = Objects.requireNonNull(jacksonMapper); } @@ -96,12 +97,9 @@ private Future processAuctionEvent(AuctionContext auctionContext) { try { return httpClient.post( - new URIBuilder(properties.getAnalyticsEndpoint()) - .setPath("/analytic-events/pbsj-bids") - .build() - .toString(), - jacksonMapper.encodeToString(pbsjBids), - properties.getTimeoutMs()) + analyticsEndpoint.replaceMacro("path", "/analytic-events/pbsj-bids").expand(), + jacksonMapper.encodeToString(pbsjBids), + properties.getTimeoutMs()) .mapEmpty(); } catch (Exception e) { logger.error("Error processing event: {}", e.getMessage()); @@ -169,18 +167,12 @@ private Optional buildPbsjBid( } private Future processNotificationEvent(NotificationEvent notificationEvent) { - try { - final String url = new URIBuilder(properties.getAnalyticsEndpoint()) - .setPath("/analytic-events/pbsj-winning-bid") - .setParameter("b", notificationEvent.getBidder()) - .setParameter("bidId", notificationEvent.getBidId()) - .build() - .toString(); - return httpClient.get(url, properties.getTimeoutMs()).mapEmpty(); - } catch (URISyntaxException e) { - logger.error("Error composing url for notification event: {}", e.getMessage()); - return Future.failedFuture(e); - } + final String url = analyticsEndpoint + .replaceMacro("path", "/analytic-events/pbsj-winning-bid") + .addQueryParam("b", notificationEvent.getBidder()) + .addQueryParam("bidId", notificationEvent.getBidId()) + .expand(); + return httpClient.get(url, properties.getTimeoutMs()).mapEmpty(); } @Override diff --git a/src/main/java/org/prebid/server/auction/DsaEnforcer.java b/src/main/java/org/prebid/server/auction/DsaEnforcer.java index e123603b9a0..bdff8fadd46 100644 --- a/src/main/java/org/prebid/server/auction/DsaEnforcer.java +++ b/src/main/java/org/prebid/server/auction/DsaEnforcer.java @@ -145,5 +145,4 @@ private ExtBidDsa getDsaResponse(JsonNode dsaExt) { return null; } } - } diff --git a/src/main/java/org/prebid/server/auction/IpAddressHelper.java b/src/main/java/org/prebid/server/auction/IpAddressHelper.java index 523219fd511..156aaad4f65 100644 --- a/src/main/java/org/prebid/server/auction/IpAddressHelper.java +++ b/src/main/java/org/prebid/server/auction/IpAddressHelper.java @@ -5,17 +5,23 @@ import inet.ipaddr.IPAddressString; import inet.ipaddr.IPAddressStringParameters; import org.apache.commons.lang3.StringUtils; -import org.apache.http.conn.util.InetAddressUtils; import org.prebid.server.auction.model.IpAddress; import org.prebid.server.log.Logger; import org.prebid.server.log.LoggerFactory; import java.util.List; +import java.util.regex.Pattern; public class IpAddressHelper { private static final Logger logger = LoggerFactory.getLogger(IpAddressHelper.class); + private static final Pattern IP_V4_PATTERN = Pattern.compile(""" + ^\ + (?:[1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.\ + (?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){2}\ + (?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ + """.strip()); private static final IPAddressStringParameters IP_ADDRESS_VALIDATION_OPTIONS = IPAddressString.DEFAULT_VALIDATION_OPTIONS.toBuilder() .allowSingleSegment(false) @@ -73,7 +79,7 @@ public IpAddress toIpAddress(String ip) { } public String maskIpv4(String ip) { - if (StringUtils.isBlank(ip) || !InetAddressUtils.isIPv4Address(ip)) { + if (StringUtils.isBlank(ip) || !IP_V4_PATTERN.matcher(ip).matches()) { return ip; } diff --git a/src/main/java/org/prebid/server/auction/model/ImpRejection.java b/src/main/java/org/prebid/server/auction/model/ImpRejection.java index 578a9f0ccfc..6677a4ab8e5 100644 --- a/src/main/java/org/prebid/server/auction/model/ImpRejection.java +++ b/src/main/java/org/prebid/server/auction/model/ImpRejection.java @@ -16,5 +16,4 @@ public class ImpRejection implements Rejection { public static ImpRejection of(String impId, BidRejectionReason reason) { return ImpRejection.of(null, impId, reason); } - } diff --git a/src/main/java/org/prebid/server/bidadjustments/model/BidAdjustmentType.java b/src/main/java/org/prebid/server/bidadjustments/model/BidAdjustmentType.java index e9b790e5eab..858c27404fd 100644 --- a/src/main/java/org/prebid/server/bidadjustments/model/BidAdjustmentType.java +++ b/src/main/java/org/prebid/server/bidadjustments/model/BidAdjustmentType.java @@ -15,5 +15,4 @@ public static BidAdjustmentType of(String name) { return UNKNOWN; } } - } diff --git a/src/main/java/org/prebid/server/bidadjustments/model/BidAdjustmentsRules.java b/src/main/java/org/prebid/server/bidadjustments/model/BidAdjustmentsRules.java index 6d64ca1330e..e2f2083b056 100644 --- a/src/main/java/org/prebid/server/bidadjustments/model/BidAdjustmentsRules.java +++ b/src/main/java/org/prebid/server/bidadjustments/model/BidAdjustmentsRules.java @@ -46,5 +46,4 @@ public static BidAdjustmentsRules of(BidAdjustments bidAdjustments) { return BidAdjustmentsRules.of(MapUtils.unmodifiableMap(rules)); } - } diff --git a/src/main/java/org/prebid/server/bidder/GenericBidder.java b/src/main/java/org/prebid/server/bidder/GenericBidder.java index a708de0ca1b..6dbb2c76034 100644 --- a/src/main/java/org/prebid/server/bidder/GenericBidder.java +++ b/src/main/java/org/prebid/server/bidder/GenericBidder.java @@ -66,5 +66,4 @@ private static List bidsFromResponse(BidRequest bidRequest, BidRespon .map(bid -> BidderBid.of(bid, BidderUtil.getBidType(bid, impMap), bidResponse.getCur())) .toList(); } - } diff --git a/src/main/java/org/prebid/server/bidder/adgeneration/AdgenerationBidder.java b/src/main/java/org/prebid/server/bidder/adgeneration/AdgenerationBidder.java index 22fc3dc5309..01855b012f1 100644 --- a/src/main/java/org/prebid/server/bidder/adgeneration/AdgenerationBidder.java +++ b/src/main/java/org/prebid/server/bidder/adgeneration/AdgenerationBidder.java @@ -14,7 +14,6 @@ import io.vertx.core.http.HttpMethod; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.adgeneration.model.AdgenerationResponse; import org.prebid.server.bidder.model.BidderBid; @@ -31,8 +30,8 @@ import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.util.HttpUtil; import org.prebid.server.util.ObjectUtil; +import org.prebid.server.util.Uri; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -51,11 +50,11 @@ public class AdgenerationBidder implements Bidder { new TypeReference<>() { }; - private final String endpointUrl; + private final Uri endpoint; private final JacksonMapper mapper; public AdgenerationBidder(String endpointUrl, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); + this.endpoint = Uri.of(endpointUrl); this.mapper = Objects.requireNonNull(mapper); } @@ -96,47 +95,41 @@ private ExtImpAdgeneration parseAndValidateImpExt(Imp imp) { } private String getUri(String adSize, String id, String currency, BidRequest bidRequest) { - final URIBuilder uriBuilder; - try { - uriBuilder = new URIBuilder(endpointUrl); - } catch (URISyntaxException e) { - throw new PreBidException("Invalid url: %s, error: %s".formatted(endpointUrl, e.getMessage())); - } - - uriBuilder - .addParameter("posall", "SSPLOC") - .addParameter("id", id) - .addParameter("hb", "true") - .addParameter("t", "json3") - .addParameter("currency", currency) - .addParameter("sdkname", "prebidserver") - .addParameter("adapterver", VERSION); - - addParameterIfNotEmpty(uriBuilder, "sizes", adSize); - addParameterIfNotEmpty(uriBuilder, "tp", ObjectUtil.getIfNotNull(bidRequest.getSite(), Site::getPage)); - addParameterIfNotEmpty(uriBuilder, "appbundle", ObjectUtil.getIfNotNull(bidRequest.getApp(), App::getBundle)); - addParameterIfNotEmpty(uriBuilder, "appname", ObjectUtil.getIfNotNull(bidRequest.getApp(), App::getName)); + final Uri.ParameterizedUri parameterizedUri = endpoint + .addQueryParam("posall", "SSPLOC") + .addQueryParam("id", id) + .addQueryParam("hb", "true") + .addQueryParam("t", "json3") + .addQueryParam("currency", currency) + .addQueryParam("sdkname", "prebidserver") + .addQueryParam("adapterver", VERSION); + + addParameterIfNotEmpty(parameterizedUri, "sizes", adSize); + addParameterIfNotEmpty(parameterizedUri, "tp", ObjectUtil.getIfNotNull(bidRequest.getSite(), Site::getPage)); + addParameterIfNotEmpty( + parameterizedUri, "appbundle", ObjectUtil.getIfNotNull(bidRequest.getApp(), App::getBundle)); + addParameterIfNotEmpty(parameterizedUri, "appname", ObjectUtil.getIfNotNull(bidRequest.getApp(), App::getName)); addParameterIfNotEmpty( - uriBuilder, "transactionid", ObjectUtil.getIfNotNull(bidRequest.getSource(), Source::getTid)); + parameterizedUri, "transactionid", ObjectUtil.getIfNotNull(bidRequest.getSource(), Source::getTid)); final Device device = bidRequest.getDevice(); final String deviceOs = device != null ? device.getOs() : null; if ("android".equals(deviceOs)) { - uriBuilder.addParameter("sdktype", "1"); - addParameterIfNotEmpty(uriBuilder, "advertising_id", device.getIfa()); + parameterizedUri.addQueryParam("sdktype", "1"); + addParameterIfNotEmpty(parameterizedUri, "advertising_id", device.getIfa()); } else if ("ios".equals(deviceOs)) { - uriBuilder.addParameter("sdktype", "2"); - addParameterIfNotEmpty(uriBuilder, "idfa", device.getIfa()); + parameterizedUri.addQueryParam("sdktype", "2"); + addParameterIfNotEmpty(parameterizedUri, "idfa", device.getIfa()); } else { - uriBuilder.addParameter("sdktype", "0"); + parameterizedUri.addQueryParam("sdktype", "0"); } - return uriBuilder.toString(); + return parameterizedUri.expand(); } - private static void addParameterIfNotEmpty(URIBuilder uriBuilder, String parameter, String value) { + private static void addParameterIfNotEmpty(Uri.ParameterizedUri parameterizedUri, String parameter, String value) { if (StringUtils.isNotEmpty(value)) { - uriBuilder.addParameter(parameter, value); + parameterizedUri.addQueryParam(parameter, value); } } diff --git a/src/main/java/org/prebid/server/bidder/adkernel/AdkernelBidder.java b/src/main/java/org/prebid/server/bidder/adkernel/AdkernelBidder.java index c50b89b3417..a75d22eeec3 100644 --- a/src/main/java/org/prebid/server/bidder/adkernel/AdkernelBidder.java +++ b/src/main/java/org/prebid/server/bidder/adkernel/AdkernelBidder.java @@ -49,11 +49,11 @@ public class AdkernelBidder implements Bidder { private static final int MF_SUFFIX_LENGTH = MF_SUFFIX.length() + 1; - private final String endpointTemplate; + private final String endpoint; private final JacksonMapper mapper; - public AdkernelBidder(String endpointTemplate, JacksonMapper mapper) { - this.endpointTemplate = HttpUtil.validateUrl(Objects.requireNonNull(endpointTemplate)); + public AdkernelBidder(String endpoint, JacksonMapper mapper) { + this.endpoint = HttpUtil.validateUrl(Objects.requireNonNull(endpoint)); this.mapper = Objects.requireNonNull(mapper); } @@ -183,7 +183,7 @@ private HttpRequest createHttpRequest(Map.Entry impIdToImpMap) { .orElseThrow(() -> new PreBidException( "The impression with ID %s is not present into the request".formatted(impId))); } - } diff --git a/src/main/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidder.java b/src/main/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidder.java index 127d02ae000..9038069a989 100644 --- a/src/main/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidder.java +++ b/src/main/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidder.java @@ -22,7 +22,6 @@ import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.adnuntius.model.request.AdnuntiusMetaData; import org.prebid.server.bidder.adnuntius.model.request.AdnuntiusNativeRequest; @@ -58,9 +57,9 @@ import org.prebid.server.util.BidderUtil; import org.prebid.server.util.HttpUtil; import org.prebid.server.util.ObjectUtil; +import org.prebid.server.util.Uri; import java.math.BigDecimal; -import java.net.URISyntaxException; import java.time.Clock; import java.time.OffsetDateTime; import java.util.ArrayList; @@ -83,8 +82,8 @@ public class AdnuntiusBidder implements Bidder { private static final int BANNER_MTYPE = 1; private static final int NATIVE_MTYPE = 4; - private final String endpointUrl; - private final String euEndpoint; + private final Uri endpoint; + private final Uri euEndpoint; private final Clock clock; private final JacksonMapper mapper; @@ -93,8 +92,8 @@ public AdnuntiusBidder(String endpointUrl, Clock clock, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); - this.euEndpoint = euEndpoint == null ? null : HttpUtil.validateUrl(euEndpoint); + this.endpoint = Uri.of(endpointUrl); + this.euEndpoint = euEndpoint != null ? Uri.of(euEndpoint) : null; this.clock = Objects.requireNonNull(clock); this.mapper = Objects.requireNonNull(mapper); } @@ -261,35 +260,22 @@ private List> createHttpRequests( } private String makeEndpoint(BidRequest bidRequest, Boolean noCookies) { - try { - final String gdpr = extractGdpr(bidRequest.getRegs()); - final String url = StringUtils.isNotBlank(gdpr) ? euEndpoint : endpointUrl; - - if (url == null) { - throw new PreBidException("an EU endpoint is required but invalid"); - } - - final URIBuilder uriBuilder = new URIBuilder(url) - .addParameter("format", "prebidServer") - .addParameter("tzo", getTimeZoneOffset()); - - if (StringUtils.isNotEmpty(gdpr)) { - uriBuilder.addParameter("gdpr", gdpr); - } + final String gdpr = extractGdpr(bidRequest.getRegs()); + final Uri url = StringUtils.isNotBlank(gdpr) ? euEndpoint : endpoint; - final String consent = extractConsent(bidRequest.getUser()); - if (StringUtils.isNotEmpty(consent)) { - uriBuilder.addParameter("consentString", consent); - } + if (url == null) { + throw new PreBidException("an EU endpoint is required but invalid"); + } - if (noCookies || extractNoCookies(bidRequest.getDevice())) { - uriBuilder.addParameter("noCookies", "true"); - } + final String consent = extractConsent(bidRequest.getUser()); - return uriBuilder.build().toString(); - } catch (URISyntaxException | IllegalArgumentException e) { - throw new PreBidException(e.getMessage()); - } + return url + .addQueryParam("format", "prebidServer") + .addQueryParam("tzo", getTimeZoneOffset()) + .addQueryParam("gdpr", StringUtils.isNotEmpty(gdpr) ? gdpr : null) + .addQueryParam("consentString", StringUtils.isNotEmpty(consent) ? consent : null) + .addQueryParam("noCookies", noCookies || extractNoCookies(bidRequest.getDevice()) ? "true" : null) + .expand(); } private String getTimeZoneOffset() { diff --git a/src/main/java/org/prebid/server/bidder/adprime/AdprimeBidder.java b/src/main/java/org/prebid/server/bidder/adprime/AdprimeBidder.java index f78d6c34f49..b1773d3e2d5 100644 --- a/src/main/java/org/prebid/server/bidder/adprime/AdprimeBidder.java +++ b/src/main/java/org/prebid/server/bidder/adprime/AdprimeBidder.java @@ -171,5 +171,4 @@ private static BidType getBidType(Bid bid) { "Unable to fetch mediaType " + bid.getMtype() + " in multi-format: " + bid.getImpid()); }; } - } diff --git a/src/main/java/org/prebid/server/bidder/adtrgtme/AdtrgtmeBidder.java b/src/main/java/org/prebid/server/bidder/adtrgtme/AdtrgtmeBidder.java index f41a8d49200..a89bf76c4fe 100644 --- a/src/main/java/org/prebid/server/bidder/adtrgtme/AdtrgtmeBidder.java +++ b/src/main/java/org/prebid/server/bidder/adtrgtme/AdtrgtmeBidder.java @@ -160,5 +160,4 @@ private BidType getBidType(String impId, List imps) { } throw new PreBidException("Failed to find impression \"%s\"".formatted(impId)); } - } diff --git a/src/main/java/org/prebid/server/bidder/amx/AmxBidder.java b/src/main/java/org/prebid/server/bidder/amx/AmxBidder.java index f9d309a3495..fc7d1bbeb61 100644 --- a/src/main/java/org/prebid/server/bidder/amx/AmxBidder.java +++ b/src/main/java/org/prebid/server/bidder/amx/AmxBidder.java @@ -13,7 +13,6 @@ import com.iab.openrtb.response.SeatBid; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.amx.model.AmxBidExt; import org.prebid.server.bidder.model.BidderBid; @@ -30,9 +29,8 @@ import org.prebid.server.proto.openrtb.ext.response.ExtBidPrebid; import org.prebid.server.proto.openrtb.ext.response.ExtBidPrebidMeta; import org.prebid.server.util.BidderUtil; -import org.prebid.server.util.HttpUtil; +import org.prebid.server.util.Uri; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -52,20 +50,12 @@ public class AmxBidder implements Bidder { private final JacksonMapper mapper; public AmxBidder(String endpointUrl, JacksonMapper mapper) { - this.mapper = Objects.requireNonNull(mapper); this.endpointUrl = resolveEndpointUrl(endpointUrl); + this.mapper = Objects.requireNonNull(mapper); } private static String resolveEndpointUrl(String url) { - final URIBuilder uriBuilder; - try { - uriBuilder = new URIBuilder(HttpUtil.validateUrl(Objects.requireNonNull(url))); - } catch (URISyntaxException e) { - throw new IllegalArgumentException("Invalid url: %s, error: %s".formatted(url, e.getMessage())); - } - return uriBuilder - .addParameter(VERSION_PARAM, ADAPTER_VERSION) - .toString(); + return Uri.of(url).addQueryParam(VERSION_PARAM, ADAPTER_VERSION).expand(); } @Override diff --git a/src/main/java/org/prebid/server/bidder/appnexus/AppnexusBidder.java b/src/main/java/org/prebid/server/bidder/appnexus/AppnexusBidder.java index 06a37460655..71c9cdc4cf4 100644 --- a/src/main/java/org/prebid/server/bidder/appnexus/AppnexusBidder.java +++ b/src/main/java/org/prebid/server/bidder/appnexus/AppnexusBidder.java @@ -19,7 +19,6 @@ import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.auction.model.Endpoint; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.appnexus.proto.AppnexusBidExt; @@ -51,12 +50,11 @@ import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.proto.openrtb.ext.response.ExtBidPrebidVideo; import org.prebid.server.util.BidderUtil; -import org.prebid.server.util.HttpUtil; import org.prebid.server.util.ObjectUtil; +import org.prebid.server.util.Uri; import jakarta.validation.ValidationException; import java.math.BigDecimal; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -83,7 +81,7 @@ public class AppnexusBidder implements Bidder { new TypeReference<>() { }; - private final String endpointUrl; + private final Uri endpoint; private final Integer headerBiddingSource; private final Map iabCategories; private final JacksonMapper mapper; @@ -93,7 +91,7 @@ public AppnexusBidder(String endpointUrl, Map iabCategories, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); + this.endpoint = Uri.of(endpointUrl); this.headerBiddingSource = ObjectUtils.defaultIfNull(platformId, DEFAULT_PLATFORM_ID); this.iabCategories = ObjectUtils.defaultIfNull(iabCategories, Collections.emptyMap()); this.mapper = Objects.requireNonNull(mapper); @@ -307,13 +305,7 @@ private String readKeywordsFromArray(JsonNode keywords) { } private String makeUrl(String member) { - try { - return member != null - ? new URIBuilder(endpointUrl).addParameter("member_id", member).build().toString() - : endpointUrl; - } catch (URISyntaxException e) { - throw new PreBidException(e.getMessage()); - } + return endpoint.addQueryParam("member_id", member).expand(); } private static String extractEndpointName(BidRequest bidRequest) { diff --git a/src/main/java/org/prebid/server/bidder/bluesea/BlueSeaBidder.java b/src/main/java/org/prebid/server/bidder/bluesea/BlueSeaBidder.java index 8c93ba9f73d..731ceae3897 100644 --- a/src/main/java/org/prebid/server/bidder/bluesea/BlueSeaBidder.java +++ b/src/main/java/org/prebid/server/bidder/bluesea/BlueSeaBidder.java @@ -9,7 +9,6 @@ import com.iab.openrtb.response.BidResponse; import com.iab.openrtb.response.SeatBid; import org.apache.commons.collections4.CollectionUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.model.BidderBid; import org.prebid.server.bidder.model.BidderCall; @@ -23,9 +22,8 @@ import org.prebid.server.proto.openrtb.ext.request.bluesea.ExtImpBlueSea; import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.util.BidderUtil; -import org.prebid.server.util.HttpUtil; +import org.prebid.server.util.Uri; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -39,11 +37,11 @@ public class BlueSeaBidder implements Bidder { new TypeReference<>() { }; - private final String endpointUrl; + private final Uri endpoint; private final JacksonMapper mapper; public BlueSeaBidder(String endpointUrl, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); + this.endpoint = Uri.of(endpointUrl); this.mapper = Objects.requireNonNull(mapper); } @@ -78,17 +76,10 @@ private HttpRequest makeRequest(BidRequest bidRequest, ExtImpBlueSea } private String resolveUrl(ExtImpBlueSea extImpBlueSea) { - final URIBuilder uriBuilder; - try { - uriBuilder = new URIBuilder(endpointUrl); - } catch (URISyntaxException e) { - throw new PreBidException("Invalid url: %s, error: %s".formatted(endpointUrl, e.getMessage())); - } - - return uriBuilder - .addParameter("pubid", extImpBlueSea.getPubId()) - .addParameter("token", extImpBlueSea.getToken()) - .toString(); + return endpoint + .addQueryParam("pubid", extImpBlueSea.getPubId()) + .addQueryParam("token", extImpBlueSea.getToken()) + .expand(); } @Override diff --git a/src/main/java/org/prebid/server/bidder/connatix/ConnatixBidder.java b/src/main/java/org/prebid/server/bidder/connatix/ConnatixBidder.java index aef2abcaf61..2259091da12 100644 --- a/src/main/java/org/prebid/server/bidder/connatix/ConnatixBidder.java +++ b/src/main/java/org/prebid/server/bidder/connatix/ConnatixBidder.java @@ -7,9 +7,9 @@ import com.iab.openrtb.request.Banner; import com.iab.openrtb.request.BidRequest; import com.iab.openrtb.request.Device; -import com.iab.openrtb.request.User; import com.iab.openrtb.request.Format; import com.iab.openrtb.request.Imp; +import com.iab.openrtb.request.User; import com.iab.openrtb.response.Bid; import com.iab.openrtb.response.BidResponse; import com.iab.openrtb.response.SeatBid; @@ -17,7 +17,6 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.model.BidderBid; import org.prebid.server.bidder.model.BidderCall; @@ -35,9 +34,9 @@ import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.util.BidderUtil; import org.prebid.server.util.HttpUtil; +import org.prebid.server.util.Uri; import java.math.BigDecimal; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -53,9 +52,8 @@ public class ConnatixBidder implements Bidder { private static final String BIDDER_CURRENCY = "USD"; private static final String FORMATTING = "%s-%s"; - private static final String GPID_KEY = "gpid"; - private final String endpointUrl; + private final Uri endpoint; private final JacksonMapper mapper; private final CurrencyConversionService currencyConversionService; @@ -64,7 +62,7 @@ public ConnatixBidder(String endpointUrl, CurrencyConversionService currencyConversionService, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); + this.endpoint = Uri.of(endpointUrl); this.currencyConversionService = Objects.requireNonNull(currencyConversionService); this.mapper = Objects.requireNonNull(mapper); } @@ -106,20 +104,10 @@ public Result>> makeHttpRequests(BidRequest request } private String getOptimalEndpointUrl(BidRequest request) { - final Optional dataCenterCode = getUserId(request).map(ConnatixBidder::getDataCenterCode); - - if (dataCenterCode.isEmpty()) { - return endpointUrl; - } - - try { - return new URIBuilder(endpointUrl) - .addParameter("dc", dataCenterCode.get()) - .build() - .toString(); - } catch (URISyntaxException e) { - throw new PreBidException(e.getMessage()); - } + final String dataCenterCode = getUserId(request) + .map(ConnatixBidder::getDataCenterCode) + .orElse(null); + return endpoint.addQueryParam("dc", dataCenterCode).expand(); } private static Optional getUserId(BidRequest request) { diff --git a/src/main/java/org/prebid/server/bidder/datablocks/DatablocksBidder.java b/src/main/java/org/prebid/server/bidder/datablocks/DatablocksBidder.java index 1e3daa4d82d..c88baab7e9f 100644 --- a/src/main/java/org/prebid/server/bidder/datablocks/DatablocksBidder.java +++ b/src/main/java/org/prebid/server/bidder/datablocks/DatablocksBidder.java @@ -36,11 +36,11 @@ public class DatablocksBidder implements Bidder { new TypeReference<>() { }; - private final String endpointTemplate; + private final String endpoint; private final JacksonMapper mapper; - public DatablocksBidder(String endpointTemplate, JacksonMapper mapper) { - this.endpointTemplate = HttpUtil.validateUrl(Objects.requireNonNull(endpointTemplate)); + public DatablocksBidder(String endpoint, JacksonMapper mapper) { + this.endpoint = HttpUtil.validateUrl(Objects.requireNonNull(endpoint)); this.mapper = Objects.requireNonNull(mapper); } @@ -83,7 +83,7 @@ private HttpRequest makeHttpRequest(Map.Entry { }; private static final String X_OPENRTB_VERSION = "2.5"; - private final String endpointUrl; + private final Uri endpoint; private final JacksonMapper mapper; public DxKultureBidder(String endpointUrl, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); + this.endpoint = Uri.of(endpointUrl); this.mapper = Objects.requireNonNull(mapper); } @@ -78,18 +77,10 @@ private ExtImpDxKulture parseImpExt(Imp imp) { } private String getUri(ExtImpDxKulture extImpDxKulture) { - final URIBuilder uriBuilder; - try { - uriBuilder = new URIBuilder(endpointUrl); - } catch (URISyntaxException e) { - throw new PreBidException("Invalid url: %s, error: %s".formatted(endpointUrl, e.getMessage())); - } - - uriBuilder - .addParameter("publisher_id", extImpDxKulture.getPublisherId()) - .addParameter("placement_id", extImpDxKulture.getPlacementId()); - - return uriBuilder.toString(); + return endpoint + .addQueryParam("publisher_id", extImpDxKulture.getPublisherId()) + .addQueryParam("placement_id", extImpDxKulture.getPlacementId()) + .expand(); } private static MultiMap resolveHeaders(BidRequest bidRequest) { diff --git a/src/main/java/org/prebid/server/bidder/elementaltv/ElementalTVBidder.java b/src/main/java/org/prebid/server/bidder/elementaltv/ElementalTVBidder.java index 17cd2950b7a..b67fbfe053a 100644 --- a/src/main/java/org/prebid/server/bidder/elementaltv/ElementalTVBidder.java +++ b/src/main/java/org/prebid/server/bidder/elementaltv/ElementalTVBidder.java @@ -42,11 +42,11 @@ public class ElementalTVBidder implements Bidder { new TypeReference<>() { }; - private final String endpointTemplate; + private final String endpoint; private final JacksonMapper mapper; - public ElementalTVBidder(String endpointTemplate, JacksonMapper mapper) { - this.endpointTemplate = HttpUtil.validateUrl(Objects.requireNonNull(endpointTemplate)); + public ElementalTVBidder(String endpoint, JacksonMapper mapper) { + this.endpoint = HttpUtil.validateUrl(Objects.requireNonNull(endpoint)); this.mapper = Objects.requireNonNull(mapper); } @@ -85,7 +85,7 @@ private ExtImpElementalTV parseAndValidateImpExt(Imp imp) { private String resolveUrl(ExtImpElementalTV extImp) { try { - return endpointTemplate + return endpoint .replace("{{AdUnit}}", HttpUtil.encodeUrl(extImp.getAdunit())); } catch (Exception e) { throw new PreBidException(e.getMessage()); diff --git a/src/main/java/org/prebid/server/bidder/eplanning/EplanningBidder.java b/src/main/java/org/prebid/server/bidder/eplanning/EplanningBidder.java index 99beb0538bf..26fb706b11f 100644 --- a/src/main/java/org/prebid/server/bidder/eplanning/EplanningBidder.java +++ b/src/main/java/org/prebid/server/bidder/eplanning/EplanningBidder.java @@ -18,7 +18,6 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.eplanning.model.CleanStepName; import org.prebid.server.bidder.eplanning.model.HbResponse; @@ -37,10 +36,9 @@ import org.prebid.server.proto.openrtb.ext.request.eplanning.ExtImpEplanning; import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.util.HttpUtil; +import org.prebid.server.util.Uri; import java.math.BigDecimal; -import java.net.MalformedURLException; -import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; @@ -79,11 +77,11 @@ public class EplanningBidder implements Bidder { new TypeReference<>() { }; - private final String endpointUrl; + private final Uri endpoint; private final JacksonMapper mapper; public EplanningBidder(String endpointUrl, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); + this.endpoint = Uri.of(endpointUrl); this.mapper = Objects.requireNonNull(mapper); } @@ -213,81 +211,70 @@ private static MultiMap createHeaders(Device device) { private String resolveRequestUri(BidRequest request, List requestsStrings, String clientId) { final Site site = request.getSite(); - String pageUrl = DEFAULT_PAGE_URL; - if (site != null && StringUtils.isNotBlank(site.getPage())) { - pageUrl = site.getPage(); - } - - String pageDomain = DEFAULT_PAGE_URL; - if (site != null) { - if (StringUtils.isNotBlank(site.getDomain())) { - pageDomain = site.getDomain(); - } else if (StringUtils.isNotBlank(site.getPage())) { - pageDomain = parseUrl(site.getPage()).getHost(); - } - } + final String pageUrl = Optional.ofNullable(site) + .map(Site::getPage) + .filter(StringUtils::isNotBlank) + .orElse(DEFAULT_PAGE_URL); final App app = request.getApp(); - final String requestTarget = app != null && StringUtils.isNotBlank(app.getBundle()) - ? app.getBundle() - : pageDomain; + final String requestTarget = Optional.ofNullable(app) + .map(App::getBundle) + .filter(StringUtils::isNotBlank) + .orElseGet(() -> getPageDomain(site)); + final String appName = app != null ? app.getName() : null; + final String appId = app != null ? app.getId() : null; + + final String buyeruid = Optional.ofNullable(request.getUser()) + .map(User::getBuyeruid) + .filter(StringUtils::isNotBlank) + .orElse(null); - final String uri = "%s/%s/%s/%s/%s".formatted(endpointUrl, clientId, DFP_CLIENT_ID, requestTarget, SEC); + final Device device = request.getDevice(); + final String ip = device != null ? device.getIp() : null; + final String ifa = app != null && device != null ? device.getIfa() : null; - final URIBuilder uriBuilder; - try { - uriBuilder = new URIBuilder(uri); - } catch (URISyntaxException e) { - throw new PreBidException("Invalid url: %s, error: %s".formatted(uri, e.getMessage())); - } + final String schain = getSchainParameter(request.getSource()); - uriBuilder - .addParameter("r", "pbs") - .addParameter("ncb", "1"); + return endpoint + .replaceMacro("ClientId", clientId) + .replaceMacro("DfpClientId", DFP_CLIENT_ID) + .replaceMacro("RequestTarget", requestTarget) + .replaceMacro("Sec", SEC) - if (app == null) { - uriBuilder.addParameter("ur", pageUrl); - } - uriBuilder.addParameter("e", String.join("+", requestsStrings)); + .addQueryParam("r", "pbs") + .addQueryParam("ncb", "1") + .addQueryParam("e", String.join("+", requestsStrings)) - final User user = request.getUser(); - final String buyeruid = user != null ? user.getBuyeruid() : null; - if (StringUtils.isNotBlank(buyeruid)) { - uriBuilder.addParameter("uid", buyeruid); - } + .addQueryParam("ur", app == null ? pageUrl : null) - final Device device = request.getDevice(); - final String ip = device != null ? device.getIp() : null; - if (StringUtils.isNotBlank(ip)) { - uriBuilder.addParameter("ip", ip); - } + .addQueryParam("uid", buyeruid) + .addQueryParam("appn", StringUtils.isNotBlank(appName) ? appName : null) + .addQueryParam("appid", StringUtils.isNotBlank(appId) ? appId : null) + .addQueryParam("app", app != null ? REQUEST_TARGET_INVENTORY : null) - if (app != null) { - if (StringUtils.isNotBlank(app.getName())) { - uriBuilder.addParameter("appn", app.getName()); - } - if (StringUtils.isNotBlank(app.getId())) { - uriBuilder.addParameter("appid", app.getId()); - } - if (request.getDevice() != null && StringUtils.isNotBlank(request.getDevice().getIfa())) { - uriBuilder.addParameter("ifa", request.getDevice().getIfa()); - } - uriBuilder.addParameter("app", REQUEST_TARGET_INVENTORY); - } + .addQueryParam("ip", StringUtils.isNotBlank(ip) ? ip : null) + .addQueryParam("ifa", StringUtils.isNotBlank(ifa) ? ifa : null) - String schain = getSchainParameter(request.getSource()); - if (schain != null) { - schain = schain.replace(" ", "%20"); - uriBuilder.addParameter("sch", schain); - } + .addQueryParam("sch", schain) + .expand(); + } - return uriBuilder.toString(); + private static String getPageDomain(Site site) { + return Optional.ofNullable(site) + .map(Site::getDomain) + .filter(StringUtils::isNotBlank) + .or(() -> Optional.ofNullable(site) + .map(Site::getPage) + .filter(StringUtils::isNotBlank) + .map(EplanningBidder::parseUrl) + .map(URL::getHost)) + .orElse(DEFAULT_PAGE_URL); } private static URL parseUrl(String url) { try { - return new URL(url); - } catch (MalformedURLException e) { + return HttpUtil.parseUrl(url); + } catch (IllegalArgumentException e) { throw new PreBidException("Invalid url: " + url, e); } } @@ -297,6 +284,7 @@ private String getSchainParameter(Source source) { .map(Source::getExt) .map(ExtSource::getSchain) .map(this::resolveSupplyChain) + .map(schain -> schain.replace(" ", "%20")) .orElse(null); } diff --git a/src/main/java/org/prebid/server/bidder/flipp/FlippBidder.java b/src/main/java/org/prebid/server/bidder/flipp/FlippBidder.java index dedd8399f1b..67090b4140a 100644 --- a/src/main/java/org/prebid/server/bidder/flipp/FlippBidder.java +++ b/src/main/java/org/prebid/server/bidder/flipp/FlippBidder.java @@ -16,8 +16,6 @@ import io.vertx.core.http.HttpMethod; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.NameValuePair; -import org.apache.http.client.utils.URLEncodedUtils; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.flipp.model.request.CampaignRequestBody; import org.prebid.server.bidder.flipp.model.request.CampaignRequestBodyUser; @@ -47,7 +45,6 @@ import org.prebid.server.util.HttpUtil; import org.prebid.server.util.ObjectUtil; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -57,6 +54,8 @@ import java.util.Optional; import java.util.Set; import java.util.UUID; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class FlippBidder implements Bidder { @@ -72,6 +71,7 @@ public class FlippBidder implements Bidder { private static final String EXT_REQUEST_TRANSMIT_EIDS = "transmitEids"; private static final int DEFAULT_STANDARD_HEIGHT = 2400; private static final int DEFAULT_COMPACT_HEIGHT = 600; + private static final Pattern CONTENT_CODE_PATTERN = Pattern.compile("[?&]flipp-content-code=([^&]+)"); private final String endpointUrl; private final JacksonMapper mapper; @@ -167,13 +167,16 @@ private static String resolveContentCode(Site site, ExtImpFlipp extImp) { final String pageUrl = Optional.ofNullable(site) .map(Site::getPage) .orElse(null); + if (StringUtils.isBlank(pageUrl)) { + return null; + } - return URLEncodedUtils.parse(pageUrl, StandardCharsets.UTF_8) - .stream() - .filter(nameValuePair -> nameValuePair.getName().contains("flipp-content-code")) - .map(NameValuePair::getValue) - .findFirst() - .orElse(null); + final Matcher matcher = CONTENT_CODE_PATTERN.matcher(pageUrl); + if (!matcher.matches()) { + return null; + } + + return matcher.group(0); } private static List resolveKeywords(BidRequest bidRequest) { diff --git a/src/main/java/org/prebid/server/bidder/gotthamads/GothamAdsBidder.java b/src/main/java/org/prebid/server/bidder/gotthamads/GothamAdsBidder.java index 62b0ad34155..b176b8c1cfd 100644 --- a/src/main/java/org/prebid/server/bidder/gotthamads/GothamAdsBidder.java +++ b/src/main/java/org/prebid/server/bidder/gotthamads/GothamAdsBidder.java @@ -144,5 +144,4 @@ private static BidType getBidMediaType(Bid bid) { "Unable to fetch mediaType " + bid.getMtype() + " in multi-format: " + bid.getImpid()); }; } - } diff --git a/src/main/java/org/prebid/server/bidder/huaweiads/ClientTimeFormatter.java b/src/main/java/org/prebid/server/bidder/huaweiads/ClientTimeFormatter.java index c48a509d57e..962904ab640 100644 --- a/src/main/java/org/prebid/server/bidder/huaweiads/ClientTimeFormatter.java +++ b/src/main/java/org/prebid/server/bidder/huaweiads/ClientTimeFormatter.java @@ -48,5 +48,4 @@ private static boolean matchesPattern(String clientTime, Pattern pattern) { public String now() { return OffsetDateTime.now(clock).format(TIME_OUTPUT_FORMATTER); } - } diff --git a/src/main/java/org/prebid/server/bidder/huaweiads/CountryCodeResolver.java b/src/main/java/org/prebid/server/bidder/huaweiads/CountryCodeResolver.java index a9b8ffe5238..67768526222 100644 --- a/src/main/java/org/prebid/server/bidder/huaweiads/CountryCodeResolver.java +++ b/src/main/java/org/prebid/server/bidder/huaweiads/CountryCodeResolver.java @@ -50,5 +50,4 @@ private Optional convertCountryCode(String countryCode) { default -> Optional.ofNullable(countryCodeMapper.mapToAlpha2(countryCode)); }; } - } diff --git a/src/main/java/org/prebid/server/bidder/huaweiads/HuaweiAdsBidder.java b/src/main/java/org/prebid/server/bidder/huaweiads/HuaweiAdsBidder.java index ebc2b56987e..718e8c36d7f 100644 --- a/src/main/java/org/prebid/server/bidder/huaweiads/HuaweiAdsBidder.java +++ b/src/main/java/org/prebid/server/bidder/huaweiads/HuaweiAdsBidder.java @@ -351,5 +351,4 @@ private String getNurl(List monitorList) { .findFirst() .orElse(StringUtils.EMPTY); } - } diff --git a/src/main/java/org/prebid/server/bidder/huaweiads/HuaweiAppBuilder.java b/src/main/java/org/prebid/server/bidder/huaweiads/HuaweiAppBuilder.java index 441fe856295..9bb8bba4370 100644 --- a/src/main/java/org/prebid/server/bidder/huaweiads/HuaweiAppBuilder.java +++ b/src/main/java/org/prebid/server/bidder/huaweiads/HuaweiAppBuilder.java @@ -71,5 +71,4 @@ private String getPackageName(String bundleName) { return bundleName; } - } diff --git a/src/main/java/org/prebid/server/bidder/huaweiads/HuaweiDeviceBuilder.java b/src/main/java/org/prebid/server/bidder/huaweiads/HuaweiDeviceBuilder.java index ff95dcd40ea..ab980027072 100644 --- a/src/main/java/org/prebid/server/bidder/huaweiads/HuaweiDeviceBuilder.java +++ b/src/main/java/org/prebid/server/bidder/huaweiads/HuaweiDeviceBuilder.java @@ -106,5 +106,4 @@ private ExtUserDataDeviceIdHuaweiAds parseUserExtData(ExtUser extUser) { private String formatClientTime(List clientTimes) { return CollectionUtils.isEmpty(clientTimes) ? null : clientTimeFormatter.format(clientTimes.getFirst()); } - } diff --git a/src/main/java/org/prebid/server/bidder/huaweiads/model/AdsType.java b/src/main/java/org/prebid/server/bidder/huaweiads/model/AdsType.java index a36039854ed..177e18dd9e6 100644 --- a/src/main/java/org/prebid/server/bidder/huaweiads/model/AdsType.java +++ b/src/main/java/org/prebid/server/bidder/huaweiads/model/AdsType.java @@ -36,5 +36,4 @@ public static AdsType ofTypeNumber(Integer typeNumber) { .findFirst() .orElse(UNKNOWN); } - } diff --git a/src/main/java/org/prebid/server/bidder/huaweiads/model/response/CreativeType.java b/src/main/java/org/prebid/server/bidder/huaweiads/model/response/CreativeType.java index 1ea45d9d735..3faafe0315d 100644 --- a/src/main/java/org/prebid/server/bidder/huaweiads/model/response/CreativeType.java +++ b/src/main/java/org/prebid/server/bidder/huaweiads/model/response/CreativeType.java @@ -30,5 +30,4 @@ public static CreativeType of(Integer type) { .findFirst() .orElse(UNKNOWN); } - } diff --git a/src/main/java/org/prebid/server/bidder/huaweiads/model/response/PictureAdm.java b/src/main/java/org/prebid/server/bidder/huaweiads/model/response/PictureAdm.java index 4c3e0b55b92..e22a662a251 100644 --- a/src/main/java/org/prebid/server/bidder/huaweiads/model/response/PictureAdm.java +++ b/src/main/java/org/prebid/server/bidder/huaweiads/model/response/PictureAdm.java @@ -48,5 +48,4 @@ public String toString() { + "function sendSomeGetReq(urls) {for (var i = 0; i < urls.length; i++) {sendOneGetReq(urls[i]);}}" + ""; } - } diff --git a/src/main/java/org/prebid/server/bidder/huaweiads/model/response/RewardedVideoPartAdm.java b/src/main/java/org/prebid/server/bidder/huaweiads/model/response/RewardedVideoPartAdm.java index d248b86600d..27692570bef 100644 --- a/src/main/java/org/prebid/server/bidder/huaweiads/model/response/RewardedVideoPartAdm.java +++ b/src/main/java/org/prebid/server/bidder/huaweiads/model/response/RewardedVideoPartAdm.java @@ -31,5 +31,4 @@ public String toString() { + "" + ""; } - } diff --git a/src/main/java/org/prebid/server/bidder/huaweiads/model/response/VideoAdm.java b/src/main/java/org/prebid/server/bidder/huaweiads/model/response/VideoAdm.java index d8c47eecaa7..e450f701e48 100644 --- a/src/main/java/org/prebid/server/bidder/huaweiads/model/response/VideoAdm.java +++ b/src/main/java/org/prebid/server/bidder/huaweiads/model/response/VideoAdm.java @@ -63,5 +63,4 @@ public String toString() { + "" + ""; } - } diff --git a/src/main/java/org/prebid/server/bidder/loyal/LoyalBidder.java b/src/main/java/org/prebid/server/bidder/loyal/LoyalBidder.java index b5da6c1a0d2..3644cc7e009 100644 --- a/src/main/java/org/prebid/server/bidder/loyal/LoyalBidder.java +++ b/src/main/java/org/prebid/server/bidder/loyal/LoyalBidder.java @@ -158,5 +158,4 @@ private BidType getBidType(Bid bid) { + bidType.getName() + " for bid.id: '" + bid.getId() + "'"); }; } - } diff --git a/src/main/java/org/prebid/server/bidder/mabidder/MabidderBidder.java b/src/main/java/org/prebid/server/bidder/mabidder/MabidderBidder.java index 4d4f2f59a59..d031816ffef 100644 --- a/src/main/java/org/prebid/server/bidder/mabidder/MabidderBidder.java +++ b/src/main/java/org/prebid/server/bidder/mabidder/MabidderBidder.java @@ -72,5 +72,4 @@ private static Bid makeBid(MabidderBidResponse bidResponse) { .adomain(ObjectUtil.getIfNotNull(bidResponse.getMeta(), Meta::getAdDomains)) .build(); } - } diff --git a/src/main/java/org/prebid/server/bidder/missena/MissenaBidder.java b/src/main/java/org/prebid/server/bidder/missena/MissenaBidder.java index eacc3a49541..412462d2180 100644 --- a/src/main/java/org/prebid/server/bidder/missena/MissenaBidder.java +++ b/src/main/java/org/prebid/server/bidder/missena/MissenaBidder.java @@ -28,7 +28,6 @@ import org.prebid.server.version.PrebidVersionProvider; import java.math.BigDecimal; -import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Collections; @@ -169,10 +168,10 @@ private MultiMap makeHeaders(Device device, Site site) { if (site != null && StringUtils.isNotBlank(site.getPage())) { HttpUtil.addHeaderIfValueIsNotEmpty(headers, HttpUtil.REFERER_HEADER, site.getPage()); try { - final URL url = new URL(site.getPage()); + final URL url = HttpUtil.parseUrl(site.getPage()); final String origin = url.getProtocol() + "://" + url.getHost(); HttpUtil.addHeaderIfValueIsNotEmpty(headers, HttpUtil.ORIGIN_HEADER, origin); - } catch (MalformedURLException e) { + } catch (IllegalArgumentException e) { // do nothing } } diff --git a/src/main/java/org/prebid/server/bidder/motorik/MotorikBidder.java b/src/main/java/org/prebid/server/bidder/motorik/MotorikBidder.java index 3fa086747b4..c81bedc6355 100644 --- a/src/main/java/org/prebid/server/bidder/motorik/MotorikBidder.java +++ b/src/main/java/org/prebid/server/bidder/motorik/MotorikBidder.java @@ -148,5 +148,4 @@ private static BidType getBidType(String impId, List imps) { throw new PreBidException("Failed to find impression for ID: '%s'".formatted(impId)); } - } diff --git a/src/main/java/org/prebid/server/bidder/nexx360/Nexx360Bidder.java b/src/main/java/org/prebid/server/bidder/nexx360/Nexx360Bidder.java index b4b643cc3eb..9741c87c2e3 100644 --- a/src/main/java/org/prebid/server/bidder/nexx360/Nexx360Bidder.java +++ b/src/main/java/org/prebid/server/bidder/nexx360/Nexx360Bidder.java @@ -9,7 +9,6 @@ import com.iab.openrtb.response.SeatBid; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.model.BidderBid; import org.prebid.server.bidder.model.BidderCall; @@ -24,10 +23,9 @@ import org.prebid.server.proto.openrtb.ext.request.nexx360.ExtImpNexx360; import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.util.BidderUtil; -import org.prebid.server.util.HttpUtil; +import org.prebid.server.util.Uri; import org.prebid.server.version.PrebidVersionProvider; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -41,12 +39,12 @@ public class Nexx360Bidder implements Bidder { }; private static final String BIDDER_NAME = "nexx360"; - private final String endpointUrl; + private final Uri endpoint; private final JacksonMapper mapper; private final PrebidVersionProvider prebidVersionProvider; public Nexx360Bidder(String endpointUrl, JacksonMapper mapper, PrebidVersionProvider prebidVersionProvider) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); + this.endpoint = Uri.of(endpointUrl); this.mapper = Objects.requireNonNull(mapper); this.prebidVersionProvider = Objects.requireNonNull(prebidVersionProvider); } @@ -100,21 +98,10 @@ private BidRequest makeRequest(BidRequest request, List imps) { } private String makeUrl(String tagId, String placement) { - final URIBuilder uriBuilder; - try { - uriBuilder = new URIBuilder(endpointUrl); - } catch (URISyntaxException e) { - throw new PreBidException("Invalid url: %s, error: %s".formatted(endpointUrl, e.getMessage())); - } - - if (StringUtils.isNotBlank(placement)) { - uriBuilder.addParameter("placement", placement); - } - if (StringUtils.isNotBlank(tagId)) { - uriBuilder.addParameter("tag_id", tagId); - } - - return uriBuilder.toString(); + return endpoint + .addQueryParam("placement", StringUtils.isNotBlank(placement) ? placement : null) + .addQueryParam("tag_id", StringUtils.isNotBlank(tagId) ? tagId : null) + .expand(); } @Override diff --git a/src/main/java/org/prebid/server/bidder/optidigital/OptidigitalBidder.java b/src/main/java/org/prebid/server/bidder/optidigital/OptidigitalBidder.java index 8e6e3572fea..ec2bc265336 100644 --- a/src/main/java/org/prebid/server/bidder/optidigital/OptidigitalBidder.java +++ b/src/main/java/org/prebid/server/bidder/optidigital/OptidigitalBidder.java @@ -62,5 +62,4 @@ private static List bidsFromResponse(BidResponse bidResponse) { .map(bid -> BidderBid.of(bid, BidType.banner, bidResponse.getCur())) .toList(); } - } diff --git a/src/main/java/org/prebid/server/bidder/preciso/PrecisoBidder.java b/src/main/java/org/prebid/server/bidder/preciso/PrecisoBidder.java index 3c29aa13b6d..fffd1bcceaa 100644 --- a/src/main/java/org/prebid/server/bidder/preciso/PrecisoBidder.java +++ b/src/main/java/org/prebid/server/bidder/preciso/PrecisoBidder.java @@ -165,5 +165,4 @@ private static BidType getBidType(Bid bid) { "Missing ext.prebid.type in bid for impression : %s." .formatted(bid.getImpid()))); } - } diff --git a/src/main/java/org/prebid/server/bidder/richaudience/RichaudienceBidder.java b/src/main/java/org/prebid/server/bidder/richaudience/RichaudienceBidder.java index a156be6c94e..b23848e7813 100644 --- a/src/main/java/org/prebid/server/bidder/richaudience/RichaudienceBidder.java +++ b/src/main/java/org/prebid/server/bidder/richaudience/RichaudienceBidder.java @@ -30,7 +30,6 @@ import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.util.HttpUtil; -import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Collections; @@ -163,13 +162,17 @@ private static App modifyApp(App originalApp, String tagId) { } private static Optional extractUrl(Site site) { - return Optional.ofNullable(site).map(Site::getPage).map(page -> { - try { - return new URL(page); - } catch (MalformedURLException e) { - return null; - } - }); + return Optional.ofNullable(site) + .map(Site::getPage) + .map(RichaudienceBidder::parseUrl); + } + + private static URL parseUrl(String page) { + try { + return HttpUtil.parseUrl(page); + } catch (IllegalArgumentException e) { + return null; + } } private static Imp modifyImp(Imp imp, ExtImpRichaudience extImp, boolean isSecure) { diff --git a/src/main/java/org/prebid/server/bidder/rubicon/RubiconBidder.java b/src/main/java/org/prebid/server/bidder/rubicon/RubiconBidder.java index 5760b9f4242..c37efbf68d7 100644 --- a/src/main/java/org/prebid/server/bidder/rubicon/RubiconBidder.java +++ b/src/main/java/org/prebid/server/bidder/rubicon/RubiconBidder.java @@ -32,7 +32,6 @@ import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.ViewabilityVendors; import org.prebid.server.bidder.model.BidderBid; @@ -106,10 +105,10 @@ import org.prebid.server.util.BidderUtil; import org.prebid.server.util.HttpUtil; import org.prebid.server.util.ObjectUtil; +import org.prebid.server.util.Uri; import org.prebid.server.version.PrebidVersionProvider; import java.math.BigDecimal; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Arrays; import java.util.Base64; @@ -178,7 +177,7 @@ public class RubiconBidder implements Bidder { private static final boolean DEFAULT_MULTIFORMAT_VALUE = false; private final String bidderName; - private final String endpointUrl; + private final Uri endpoint; private final String externalUrl; private final String xapiUsername; private final Set supportedVendors; @@ -207,7 +206,7 @@ public RubiconBidder(String bidderName, JacksonMapper mapper) { this.bidderName = Objects.requireNonNull(bidderName); - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpoint)); + this.endpoint = Uri.of(endpoint); this.externalUrl = HttpUtil.validateUrl(Objects.requireNonNull(externalUrl)); this.xapiUsername = Objects.requireNonNull(xapiUsername); this.supportedVendors = Set.copyOf(Objects.requireNonNull(supportedVendors)); @@ -449,16 +448,9 @@ private BidRequest createSingleRequest(BidRequest bidRequest, private String makeUri(BidRequest bidRequest) { final String tkXint = tkXintValue(bidRequest); - if (StringUtils.isNotBlank(tkXint)) { - try { - return new URIBuilder(endpointUrl) - .setParameter(TK_XINT_QUERY_PARAMETER, tkXint) - .build().toString(); - } catch (URISyntaxException e) { - throw new PreBidException("Cant add the tk_xint value for url: " + tkXint, e); - } - } - return endpointUrl; + return endpoint + .addQueryParam(TK_XINT_QUERY_PARAMETER, StringUtils.isNotBlank(tkXint) ? tkXint : null) + .expand(); } private String tkXintValue(BidRequest bidRequest) { diff --git a/src/main/java/org/prebid/server/bidder/screencore/ScreencoreBidder.java b/src/main/java/org/prebid/server/bidder/screencore/ScreencoreBidder.java index 51e05ddfd24..e36ea92767a 100644 --- a/src/main/java/org/prebid/server/bidder/screencore/ScreencoreBidder.java +++ b/src/main/java/org/prebid/server/bidder/screencore/ScreencoreBidder.java @@ -153,5 +153,4 @@ private static BidType getBidMediaType(Bid bid) { "Unable to fetch mediaType " + bid.getMtype() + " in multi-format: " + bid.getImpid()); }; } - } diff --git a/src/main/java/org/prebid/server/bidder/smartadserver/SmartadserverBidder.java b/src/main/java/org/prebid/server/bidder/smartadserver/SmartadserverBidder.java index 150c37fd255..2a27ba28079 100644 --- a/src/main/java/org/prebid/server/bidder/smartadserver/SmartadserverBidder.java +++ b/src/main/java/org/prebid/server/bidder/smartadserver/SmartadserverBidder.java @@ -9,8 +9,6 @@ import com.iab.openrtb.response.BidResponse; import com.iab.openrtb.response.SeatBid; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.model.BidderBid; import org.prebid.server.bidder.model.BidderCall; @@ -25,9 +23,8 @@ import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.util.BidderUtil; import org.prebid.server.util.HttpUtil; +import org.prebid.server.util.Uri; -import java.net.URI; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -41,13 +38,13 @@ public class SmartadserverBidder implements Bidder { new TypeReference<>() { }; - private final String endpointUrl; - private final String secondaryEndpointUrl; + private final Uri endpoint; + private final String pgEndpoint; private final JacksonMapper mapper; - public SmartadserverBidder(String endpointUrl, String secondaryEndpointUrl, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); - this.secondaryEndpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(secondaryEndpointUrl)); + public SmartadserverBidder(String endpointUrl, String pgEndpoint, JacksonMapper mapper) { + this.endpoint = Uri.of(endpointUrl); + this.pgEndpoint = HttpUtil.validateUrl(Objects.requireNonNull(pgEndpoint)); this.mapper = Objects.requireNonNull(mapper); } @@ -120,21 +117,9 @@ private static Publisher modifyPublisher(Publisher publisher, Integer networkId) } private String makeUrl(boolean isProgrammaticGuaranteed) { - final String url = isProgrammaticGuaranteed ? secondaryEndpointUrl : endpointUrl; - try { - final URI uri = new URI(url); - final String path = isProgrammaticGuaranteed ? "/ortb" : "/api/bid"; - final URIBuilder uriBuilder = new URIBuilder(uri) - .setPath(StringUtils.removeEnd(uri.getPath(), "/") + path); - - if (!isProgrammaticGuaranteed) { - uriBuilder.addParameter("callerId", "5"); - } - - return uriBuilder.toString(); - } catch (URISyntaxException e) { - throw new PreBidException("Malformed URL: %s.".formatted(url)); - } + return isProgrammaticGuaranteed + ? pgEndpoint + : endpoint.addQueryParam("callerId", "5").expand(); } @Override diff --git a/src/main/java/org/prebid/server/bidder/smarthub/SmarthubBidder.java b/src/main/java/org/prebid/server/bidder/smarthub/SmarthubBidder.java index 73df9290df2..0004ae00ab3 100644 --- a/src/main/java/org/prebid/server/bidder/smarthub/SmarthubBidder.java +++ b/src/main/java/org/prebid/server/bidder/smarthub/SmarthubBidder.java @@ -36,11 +36,11 @@ public class SmarthubBidder implements Bidder { new TypeReference<>() { }; - private final String endpointTemplate; + private final String endpoint; private final JacksonMapper mapper; - public SmarthubBidder(String endpointTemplate, JacksonMapper mapper) { - this.endpointTemplate = HttpUtil.validateUrl(Objects.requireNonNull(endpointTemplate)); + public SmarthubBidder(String endpoint, JacksonMapper mapper) { + this.endpoint = HttpUtil.validateUrl(Objects.requireNonNull(endpoint)); this.mapper = Objects.requireNonNull(mapper); } @@ -68,7 +68,7 @@ private MultiMap resolveHeaders() { } private String buildEndpointUrl(ExtImpSmarthub extImpSmarthub) { - return endpointTemplate.replace("{{Host}}", StringUtils.defaultString(extImpSmarthub.getPartnerName())) + return endpoint.replace("{{Host}}", StringUtils.defaultString(extImpSmarthub.getPartnerName())) .replace("{{AccountID}}", extImpSmarthub.getSeat()) .replace("{{SourceId}}", extImpSmarthub.getToken()); } diff --git a/src/main/java/org/prebid/server/bidder/sovrnxsp/SovrnXspBidder.java b/src/main/java/org/prebid/server/bidder/sovrnxsp/SovrnXspBidder.java index a97af029b67..5637be0a2fa 100644 --- a/src/main/java/org/prebid/server/bidder/sovrnxsp/SovrnXspBidder.java +++ b/src/main/java/org/prebid/server/bidder/sovrnxsp/SovrnXspBidder.java @@ -177,5 +177,4 @@ private static BidderBid makeBidderBid(Bid bid, String currency, Integer mtype, final Integer modifiedMtype = Optional.ofNullable(bid.getMtype()).orElse(mtype); return BidderBid.of(bid.toBuilder().mtype(modifiedMtype).build(), bidType, currency); } - } diff --git a/src/main/java/org/prebid/server/bidder/sparteo/SparteoBidder.java b/src/main/java/org/prebid/server/bidder/sparteo/SparteoBidder.java index 42c12a48d1c..38f989a81a5 100644 --- a/src/main/java/org/prebid/server/bidder/sparteo/SparteoBidder.java +++ b/src/main/java/org/prebid/server/bidder/sparteo/SparteoBidder.java @@ -30,10 +30,8 @@ import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.proto.openrtb.ext.response.ExtBidPrebid; import org.prebid.server.util.BidderUtil; -import org.prebid.server.util.HttpUtil; -import org.apache.http.client.utils.URIBuilder; +import org.prebid.server.util.Uri; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -46,13 +44,14 @@ public class SparteoBidder implements Bidder { private static final String UNKNOWN_VALUE = "unknown"; private static final TypeReference> TYPE_REFERENCE = - new TypeReference<>() { }; + new TypeReference<>() { + }; - private final String endpointUrl; + private final Uri endpoint; private final JacksonMapper mapper; public SparteoBidder(String endpointUrl, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); + this.endpoint = Uri.of(endpointUrl); this.mapper = Objects.requireNonNull(mapper); } @@ -222,24 +221,12 @@ private String resolveBundle(App app) { } private String resolveEndpoint(String siteDomain, String appDomain, String networkId, String bundle) { - try { - final URIBuilder uriBuilder = new URIBuilder(endpointUrl); - if (StringUtils.isNotBlank(networkId)) { - uriBuilder.addParameter("network_id", networkId); - } - if (StringUtils.isNotBlank(siteDomain)) { - uriBuilder.addParameter("site_domain", siteDomain); - } - if (StringUtils.isNotBlank(appDomain)) { - uriBuilder.addParameter("app_domain", appDomain); - } - if (StringUtils.isNotBlank(bundle)) { - uriBuilder.addParameter("bundle", bundle); - } - return uriBuilder.build().toString(); - } catch (URISyntaxException e) { - throw new PreBidException("Failed to build endpoint URL", e); - } + return endpoint + .addQueryParam("site_domain", StringUtils.isNotBlank(siteDomain) ? siteDomain : null) + .addQueryParam("app_domain", StringUtils.isNotBlank(appDomain) ? appDomain : null) + .addQueryParam("network_id", StringUtils.isNotBlank(networkId) ? networkId : null) + .addQueryParam("bundle", StringUtils.isNotBlank(bundle) ? bundle : null) + .expand(); } @Override diff --git a/src/main/java/org/prebid/server/bidder/sspbc/SspbcBidder.java b/src/main/java/org/prebid/server/bidder/sspbc/SspbcBidder.java index 47419fb21a7..615ba3dbc7c 100644 --- a/src/main/java/org/prebid/server/bidder/sspbc/SspbcBidder.java +++ b/src/main/java/org/prebid/server/bidder/sspbc/SspbcBidder.java @@ -6,7 +6,6 @@ import com.iab.openrtb.response.SeatBid; import io.vertx.core.http.HttpMethod; import org.apache.commons.collections4.CollectionUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.model.BidderBid; import org.prebid.server.bidder.model.BidderCall; @@ -19,8 +18,8 @@ import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.util.BidderUtil; import org.prebid.server.util.HttpUtil; +import org.prebid.server.util.Uri; -import java.net.URISyntaxException; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -34,10 +33,14 @@ public class SspbcBidder implements Bidder { private final JacksonMapper mapper; public SspbcBidder(String endpointUrl, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); + this.endpointUrl = resolveEndpointUrl(endpointUrl); this.mapper = Objects.requireNonNull(mapper); } + private static String resolveEndpointUrl(String base) { + return Uri.of(base).addQueryParam("bdver", ADAPTER_VERSION).expand(); + } + @Override public Result>> makeHttpRequests(BidRequest request) { return Result.withValue(createHttpRequest(request)); @@ -47,7 +50,7 @@ private HttpRequest createHttpRequest(BidRequest request) { final SspbcRequest outgoingRequest = SspbcRequest.of(request); return HttpRequest.builder() .method(HttpMethod.POST) - .uri(makeUrl(endpointUrl)) + .uri(endpointUrl) .headers(HttpUtil.headers()) .impIds(BidderUtil.impIds(outgoingRequest.getBidRequest())) .body(mapper.encodeToBytes(outgoingRequest)) @@ -55,17 +58,6 @@ private HttpRequest createHttpRequest(BidRequest request) { .build(); } - private static String makeUrl(String endpointUrl) { - try { - return new URIBuilder(endpointUrl) - .addParameter("bdver", ADAPTER_VERSION) - .build() - .toString(); - } catch (URISyntaxException e) { - throw new PreBidException("Malformed URL: %s.".formatted(endpointUrl)); - } - } - @Override public Result> makeBids(BidderCall httpCall, BidRequest bidRequest) { try { diff --git a/src/main/java/org/prebid/server/bidder/startio/StartioBidder.java b/src/main/java/org/prebid/server/bidder/startio/StartioBidder.java index e7ce856a4bc..2086ba7697b 100644 --- a/src/main/java/org/prebid/server/bidder/startio/StartioBidder.java +++ b/src/main/java/org/prebid/server/bidder/startio/StartioBidder.java @@ -145,5 +145,4 @@ private static BidType getBidType(Bid bid) { default -> null; }; } - } diff --git a/src/main/java/org/prebid/server/bidder/taboola/TaboolaBidder.java b/src/main/java/org/prebid/server/bidder/taboola/TaboolaBidder.java index cbd180f2e6f..02e66f61b59 100644 --- a/src/main/java/org/prebid/server/bidder/taboola/TaboolaBidder.java +++ b/src/main/java/org/prebid/server/bidder/taboola/TaboolaBidder.java @@ -51,12 +51,12 @@ public class TaboolaBidder implements Bidder { new TypeReference<>() { }; - private final String endpointTemplate; + private final String endpoint; private final String gvlId; private final JacksonMapper mapper; - public TaboolaBidder(String endpointTemplate, Integer gvlId, JacksonMapper mapper) { - this.endpointTemplate = HttpUtil.validateUrl(Objects.requireNonNull(endpointTemplate)); + public TaboolaBidder(String endpoint, Integer gvlId, JacksonMapper mapper) { + this.endpoint = HttpUtil.validateUrl(Objects.requireNonNull(endpoint)); this.gvlId = gvlId != null ? String.valueOf(gvlId) : ""; this.mapper = Objects.requireNonNull(mapper); } @@ -219,7 +219,7 @@ private String buildEndpointUrl(BidRequest bidRequest, MediaType mediaType) { .or(() -> Optional.ofNullable(bidRequest.getApp()).map(App::getId)) .orElse(StringUtils.EMPTY); - return endpointTemplate + return endpoint .replace("{{GvlID}}", gvlId) .replace("{{MediaType}}", type) .replace("{{PublisherID}}", HttpUtil.encodeUrl(publisherId)); diff --git a/src/main/java/org/prebid/server/bidder/tappx/TappxBidder.java b/src/main/java/org/prebid/server/bidder/tappx/TappxBidder.java index 67224479693..513a2be0008 100644 --- a/src/main/java/org/prebid/server/bidder/tappx/TappxBidder.java +++ b/src/main/java/org/prebid/server/bidder/tappx/TappxBidder.java @@ -6,8 +6,6 @@ import com.iab.openrtb.response.BidResponse; import com.iab.openrtb.response.SeatBid; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.ListUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.model.BidderBid; import org.prebid.server.bidder.model.BidderCall; @@ -23,9 +21,9 @@ import org.prebid.server.proto.openrtb.ext.request.tappx.ExtImpTappx; import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.util.BidderUtil; +import org.prebid.server.util.Uri; import java.math.BigDecimal; -import java.net.URISyntaxException; import java.time.Clock; import java.util.ArrayList; import java.util.Collection; @@ -43,14 +41,13 @@ public class TappxBidder implements Bidder { new TypeReference<>() { }; private static final Pattern NEW_ENDPOINT_PATTERN = Pattern.compile("^(zz|vz)[0-9]{3,}([a-z]{2,3}|test)$"); - private static final String SUBDOMAIN_MACRO = "{{subdomain}}"; - private final String endpointUrl; + private final Uri endpoint; private final Clock clock; private final JacksonMapper mapper; public TappxBidder(String endpointUrl, Clock clock, JacksonMapper mapper) { - this.endpointUrl = Objects.requireNonNull(endpointUrl); + this.endpoint = Uri.of(endpointUrl); this.clock = Objects.requireNonNull(clock); this.mapper = Objects.requireNonNull(mapper); } @@ -88,39 +85,18 @@ private static List modifyImps(List imps, ExtImpTappx extImpTappx) { } private String resolveUrl(ExtImpTappx extImpTappx, Integer test) { - final String subdomain = extImpTappx.getEndpoint(); - final boolean isNewEndpoint = NEW_ENDPOINT_PATTERN.matcher(subdomain).matches(); - - final String baseUri = isNewEndpoint ? resolveNewHost(subdomain) : resolveOldHost(); - final URIBuilder uriBuilder; - try { - uriBuilder = new URIBuilder(baseUri); - } catch (URISyntaxException e) { - throw new PreBidException("Failed to build endpoint URL: " + e.getMessage()); - } - - if (!isNewEndpoint) { - final List pathSegments = uriBuilder.getPathSegments(); - uriBuilder.setPathSegments(ListUtils.union(pathSegments, Collections.singletonList(subdomain))); - } - - uriBuilder.addParameter("tappxkey", extImpTappx.getTappxkey()); - uriBuilder.addParameter("v", VERSION); - uriBuilder.addParameter("type_cnn", TYPE_CNN); - - if (!BidderUtil.isNullOrZero(test)) { - uriBuilder.addParameter("ts", String.valueOf(clock.millis())); - } - - return uriBuilder.toString(); - } - - private String resolveNewHost(String subdomain) { - return endpointUrl.replace(SUBDOMAIN_MACRO, subdomain + ".pub") + "/rtb/"; - } - - private String resolveOldHost() { - return endpointUrl.replace(SUBDOMAIN_MACRO, "ssp.api") + "/rtb/v2"; + final String subdomainPart = extImpTappx.getEndpoint(); + final boolean isNewEndpoint = NEW_ENDPOINT_PATTERN.matcher(subdomainPart).matches(); + final String subdomain = isNewEndpoint ? subdomainPart + ".pub" : "ssp.api"; + + return endpoint + .replaceMacro("subdomain", subdomain) + .replaceMacro("path", isNewEndpoint ? "/rtb" : "/rtb/v2/" + subdomainPart) + .addQueryParam("tappxkey", extImpTappx.getTappxkey()) + .addQueryParam("v", VERSION) + .addQueryParam("type_cnn", TYPE_CNN) + .addQueryParam("ts", !BidderUtil.isNullOrZero(test) ? String.valueOf(clock.millis()) : null) + .expand(); } private static Imp modifyImp(Imp imp, ExtImpTappx extImpTappx) { diff --git a/src/main/java/org/prebid/server/bidder/teads/TeadsBidder.java b/src/main/java/org/prebid/server/bidder/teads/TeadsBidder.java index 1e4e9804e11..a16c0198e94 100644 --- a/src/main/java/org/prebid/server/bidder/teads/TeadsBidder.java +++ b/src/main/java/org/prebid/server/bidder/teads/TeadsBidder.java @@ -168,5 +168,4 @@ private ExtBidPrebid parseExtBidPrebidMeta(Bid bid) { throw new PreBidException(e.getMessage()); } } - } diff --git a/src/main/java/org/prebid/server/bidder/tradplus/TradPlusBidder.java b/src/main/java/org/prebid/server/bidder/tradplus/TradPlusBidder.java index 99d8bc8e74c..b8912da688f 100644 --- a/src/main/java/org/prebid/server/bidder/tradplus/TradPlusBidder.java +++ b/src/main/java/org/prebid/server/bidder/tradplus/TradPlusBidder.java @@ -131,5 +131,4 @@ private static BidType getBidType(String impId, List imps) { throw new PreBidException( "Invalid bid imp ID #%s does not match any imp IDs from the original bid request".formatted(impId)); } - } diff --git a/src/main/java/org/prebid/server/bidder/undertone/UndertoneBidder.java b/src/main/java/org/prebid/server/bidder/undertone/UndertoneBidder.java index f350abec72c..7e1dd28c879 100644 --- a/src/main/java/org/prebid/server/bidder/undertone/UndertoneBidder.java +++ b/src/main/java/org/prebid/server/bidder/undertone/UndertoneBidder.java @@ -220,5 +220,4 @@ private BidType getBidType(Bid bid, Map idImpMap) { return BidType.banner; } - } diff --git a/src/main/java/org/prebid/server/bidder/videobyte/VideobyteBidder.java b/src/main/java/org/prebid/server/bidder/videobyte/VideobyteBidder.java index cdbac176521..2d960b9f091 100644 --- a/src/main/java/org/prebid/server/bidder/videobyte/VideobyteBidder.java +++ b/src/main/java/org/prebid/server/bidder/videobyte/VideobyteBidder.java @@ -10,7 +10,6 @@ import io.vertx.core.http.HttpMethod; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.model.BidderBid; import org.prebid.server.bidder.model.BidderCall; @@ -24,8 +23,8 @@ import org.prebid.server.proto.openrtb.ext.request.videobyte.ExtImpVideobyte; import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.util.HttpUtil; +import org.prebid.server.util.Uri; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -39,11 +38,11 @@ public class VideobyteBidder implements Bidder { new TypeReference<>() { }; - private final String endpointUrl; + private final Uri endpoint; private final JacksonMapper mapper; public VideobyteBidder(String endpointUrl, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); + this.endpoint = Uri.of(endpointUrl); this.mapper = Objects.requireNonNull(mapper); } @@ -86,26 +85,15 @@ private HttpRequest createRequest(BidRequest bidRequest, Imp imp, Ex } private String createUri(ExtImpVideobyte extImpVideobyte) { - final URIBuilder uriBuilder; - try { - uriBuilder = new URIBuilder(endpointUrl); - } catch (URISyntaxException e) { - throw new PreBidException(e.getMessage()); - } - - uriBuilder.addParameter("source", "pbs") - .addParameter("pid", extImpVideobyte.getPublisherId()); - - addUriParameterIfNotEmpty(uriBuilder, "placementId", extImpVideobyte.getPlacementId()); - addUriParameterIfNotEmpty(uriBuilder, "nid", extImpVideobyte.getNetworkId()); - - return uriBuilder.toString(); - } - - private static void addUriParameterIfNotEmpty(URIBuilder uriBuilder, String parameter, String value) { - if (StringUtils.isNotEmpty(value)) { - uriBuilder.addParameter(parameter, value); - } + final String placementId = extImpVideobyte.getPlacementId(); + final String networkId = extImpVideobyte.getNetworkId(); + + return endpoint + .addQueryParam("source", "pbs") + .addQueryParam("pid", extImpVideobyte.getPublisherId()) + .addQueryParam("placementId", StringUtils.isNotEmpty(placementId) ? placementId : null) + .addQueryParam("nid", StringUtils.isNotEmpty(networkId) ? networkId : null) + .expand(); } private static MultiMap headers(BidRequest bidRequest) { diff --git a/src/main/java/org/prebid/server/bidder/yandex/YandexBidder.java b/src/main/java/org/prebid/server/bidder/yandex/YandexBidder.java index d3851455d1d..f0ecdb9626a 100644 --- a/src/main/java/org/prebid/server/bidder/yandex/YandexBidder.java +++ b/src/main/java/org/prebid/server/bidder/yandex/YandexBidder.java @@ -15,7 +15,6 @@ import io.vertx.core.http.HttpMethod; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.model.BidderBid; import org.prebid.server.bidder.model.BidderCall; @@ -29,8 +28,8 @@ import org.prebid.server.proto.openrtb.ext.request.yandex.ExtImpYandex; import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.util.HttpUtil; +import org.prebid.server.util.Uri; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -45,16 +44,14 @@ public class YandexBidder implements Bidder { new TypeReference<>() { }; - private static final String PAGE_ID_MACRO = "{{PageId}}"; - private static final String IMP_ID_MACRO = "{{ImpId}}"; private static final String DISPLAY_MANAGER = "prebid.java"; private static final String DISPLAY_MANAGER_VERSION = "1.1"; - private final String endpointUrl; + private final Uri endpoint; private final JacksonMapper mapper; public YandexBidder(String endpointUrl, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); + this.endpoint = Uri.of(endpointUrl); this.mapper = Objects.requireNonNull(mapper); } @@ -171,24 +168,12 @@ private static Video modifyVideo(Video video) { } private String modifyUrl(ExtImpYandex extImpYandex, String referer, String currency) { - final String resolvedUrl = endpointUrl - .replace(PAGE_ID_MACRO, HttpUtil.encodeUrl(extImpYandex.getPageId().toString())) - .replace(IMP_ID_MACRO, HttpUtil.encodeUrl(extImpYandex.getImpId().toString())); - final URIBuilder uriBuilder; - try { - uriBuilder = new URIBuilder(resolvedUrl); - } catch (URISyntaxException e) { - throw new PreBidException("Invalid url: %s, error: %s".formatted(endpointUrl, e.getMessage())); - } - addParameterIfNotBlank(uriBuilder, "target-ref", referer); - addParameterIfNotBlank(uriBuilder, "ssp-cur", currency); - return uriBuilder.toString(); - } - - private static void addParameterIfNotBlank(URIBuilder uriBuilder, String parameter, String value) { - if (StringUtils.isNotBlank(value)) { - uriBuilder.addParameter(parameter, value); - } + return endpoint + .replaceMacro("PageId", extImpYandex.getPageId().toString()) + .replaceMacro("ImpId", extImpYandex.getImpId().toString()) + .addQueryParam("target-ref", StringUtils.isNotBlank(referer) ? referer : null) + .addQueryParam("ssp-cur", StringUtils.isNotBlank(currency) ? currency : null) + .expand(); } private HttpRequest buildHttpRequest(BidRequest outgoingRequest, String url) { diff --git a/src/main/java/org/prebid/server/bidder/yieldlab/YieldlabBidder.java b/src/main/java/org/prebid/server/bidder/yieldlab/YieldlabBidder.java index 47f6cd44523..f264db4e151 100644 --- a/src/main/java/org/prebid/server/bidder/yieldlab/YieldlabBidder.java +++ b/src/main/java/org/prebid/server/bidder/yieldlab/YieldlabBidder.java @@ -23,7 +23,6 @@ import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.bidder.Bidder; import org.prebid.server.bidder.model.BidderBid; import org.prebid.server.bidder.model.BidderCall; @@ -45,9 +44,9 @@ import org.prebid.server.proto.openrtb.ext.response.ExtBidDsa; import org.prebid.server.util.BidderUtil; import org.prebid.server.util.HttpUtil; +import org.prebid.server.util.Uri; import java.math.BigDecimal; -import java.net.URISyntaxException; import java.time.Clock; import java.util.ArrayList; import java.util.Calendar; @@ -88,12 +87,12 @@ public class YieldlabBidder implements Bidder { """; - private final String endpointUrl; + private final Uri endpoint; private final Clock clock; private final JacksonMapper mapper; public YieldlabBidder(String endpointUrl, Clock clock, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); + this.endpoint = Uri.of(endpointUrl); this.clock = Objects.requireNonNull(clock); this.mapper = Objects.requireNonNull(mapper); } @@ -153,78 +152,49 @@ private ExtImpYieldlab parseImpExt(Imp imp) { } private String makeUrl(ExtImpYieldlab extImpYieldlab, BidRequest request, Map extImps) { - final String updatedPath = "%s/%s".formatted(endpointUrl, extImpYieldlab.getAdslotId()); - - final URIBuilder uriBuilder; - try { - uriBuilder = new URIBuilder(updatedPath); - } catch (URISyntaxException e) { - throw new PreBidException("Invalid url: %s, error: %s".formatted(updatedPath, e.getMessage())); - } - - uriBuilder - .addParameter("content", "json") - .addParameter("pvid", "true") - .addParameter("ts", resolveNumberParameter(clock.instant().getEpochSecond())) - .addParameter("t", getTargetingValues(extImpYieldlab)); - final String formats = makeFormats(request, extImps); - if (formats != null) { - uriBuilder.addParameter("sizes", formats); - } - - final User user = request.getUser(); - if (user != null && StringUtils.isNotBlank(user.getBuyeruid())) { - uriBuilder.addParameter("ids", "ylid:" + StringUtils.defaultString(user.getBuyeruid())); - } + final String buyerUid = Optional.ofNullable(request.getUser()) + .map(User::getBuyeruid) + .filter(StringUtils::isNotBlank) + .orElse(null); final Device device = request.getDevice(); - if (device != null) { - uriBuilder.addParameter("yl_rtb_ifa", device.getIfa()); - - uriBuilder.addParameter("yl_rtb_devicetype", resolveNumberParameter(device.getDevicetype())); - final Integer connectionType = device.getConnectiontype(); - if (connectionType != null) { - uriBuilder.addParameter("yl_rtb_connectiontype", device.getConnectiontype().toString()); - } - - final Geo geo = device.getGeo(); - if (geo != null) { - uriBuilder.addParameter("lat", ObjectUtils.defaultIfNull(geo.getLat(), 0f).toString()); - uriBuilder.addParameter("lon", ObjectUtils.defaultIfNull(geo.getLon(), 0f).toString()); - } - } - + final Geo geo = device != null ? device.getGeo() : null; final App app = request.getApp(); - if (app != null) { - uriBuilder.addParameter("pubappname", app.getName()) - .addParameter("pubbundlename", app.getBundle()); - } final String gdpr = getGdprParameter(request.getRegs()); - if (StringUtils.isNotBlank(gdpr)) { - uriBuilder.addParameter("gdpr", gdpr); - } - final String consent = getConsentParameter(request.getUser()); - if (StringUtils.isNotBlank(consent)) { - uriBuilder.addParameter("gdpr_consent", consent); - } - - final String schain = getSchainParameter(request.getSource()); - if (schain != null) { - uriBuilder.addParameter("schain", schain); - } - - extractDsaRequestParamsFromBidRequest(request).forEach(uriBuilder::addParameter); - return uriBuilder.toString(); + final Uri.ParameterizedUri parameterizedUri = endpoint + .replaceMacro("AdSlotId", extImpYieldlab.getAdslotId()) + .addQueryParam("content", "json") + .addQueryParam("pvid", "true") + .addQueryParam("ts", resolveNumberParameter(clock.instant().getEpochSecond())) + .addQueryParam("t", getTargetingValues(extImpYieldlab)) + .addQueryParam("sizes", formats) + .addQueryParam("ids", buyerUid != null ? "ylid:" + buyerUid : null) + .addQueryParam("yl_rtb_ifa", device != null ? device.getIfa() : null) + .addQueryParam("yl_rtb_devicetype", device != null ? resolveNumberParameter(device.getDevicetype()) : null) + .addQueryParam("yl_rtb_connectiontype", device != null + ? resolveNumberParameter(device.getConnectiontype()) + : null) + .addQueryParam("lat", geo != null ? Objects.toString(geo.getLat(), "0") : null) + .addQueryParam("lon", geo != null ? Objects.toString(geo.getLon(), "0") : null) + .addQueryParam("pubappname", app != null ? app.getName() : null) + .addQueryParam("pubbundlename", app != null ? app.getBundle() : null) + .addQueryParam("gdpr", StringUtils.isNotBlank(gdpr) ? gdpr : null) + .addQueryParam("gdpr_consent", StringUtils.isNotBlank(consent) ? consent : null) + .addQueryParam("schain", getSchainParameter(request.getSource())); + + extractDsaRequestParamsFromBidRequest(request).forEach(parameterizedUri::addQueryParam); + + return parameterizedUri.expand(); } private String makeFormats(BidRequest request, Map extImps) { final List formats = new LinkedList<>(); - for (Imp imp: request.getImp()) { + for (Imp imp : request.getImp()) { if (!isBanner(imp)) { continue; } @@ -248,13 +218,13 @@ private boolean isBanner(Imp imp) { } private String getTargetingValues(ExtImpYieldlab extImpYieldlab) { - final URIBuilder uriBuilder = new URIBuilder(); + final Uri.ParameterizedUri parameterizedUri = Uri.of(StringUtils.EMPTY).parameterized(); for (Map.Entry targeting : extImpYieldlab.getTargeting().entrySet()) { - uriBuilder.addParameter(targeting.getKey(), targeting.getValue()); + parameterizedUri.addQueryParam(targeting.getKey(), targeting.getValue()); } - return uriBuilder.toString().replace("?", ""); + return parameterizedUri.expand().replace("?", ""); } private static String getGdprParameter(Regs regs) { @@ -326,10 +296,10 @@ private static String encodeValue(String value) { private static Map extractDsaRequestParamsFromBidRequest(BidRequest request) { return Optional.ofNullable(request.getRegs()) - .map(Regs::getExt) - .map(ExtRegs::getDsa) - .map(YieldlabBidder::extractDsaRequestParamsFromDsaRegsExtension) - .orElse(Collections.emptyMap()); + .map(Regs::getExt) + .map(ExtRegs::getDsa) + .map(YieldlabBidder::extractDsaRequestParamsFromDsaRegsExtension) + .orElse(Collections.emptyMap()); } private static Map extractDsaRequestParamsFromDsaRegsExtension(final ExtRegsDsa dsa) { @@ -527,29 +497,29 @@ private String makeVast(BidRequest bidRequest, ExtImpYieldlab extImp, YieldlabBi } private String makeNurl(BidRequest bidRequest, ExtImpYieldlab extImp, YieldlabBid yieldlabBid) { - final URIBuilder uriBuilder = new URIBuilder() - .addParameter("ts", resolveNumberParameter(clock.instant().getEpochSecond())) - .addParameter("id", extImp.getExtId()) - .addParameter("pvid", yieldlabBid.getPvid()); + final Uri.ParameterizedUri parameterizedUri = Uri.of(StringUtils.EMPTY) + .addQueryParam("ts", resolveNumberParameter(clock.instant().getEpochSecond())) + .addQueryParam("id", extImp.getExtId()) + .addQueryParam("pvid", yieldlabBid.getPvid()); final User user = bidRequest.getUser(); if (user != null && StringUtils.isNotBlank(user.getBuyeruid())) { - uriBuilder.addParameter("ids", "ylid:" + StringUtils.defaultString(user.getBuyeruid())); + parameterizedUri.addQueryParam("ids", "ylid:" + StringUtils.defaultString(user.getBuyeruid())); } final String gdpr = getGdprParameter(bidRequest.getRegs()); final String consent = getConsentParameter(bidRequest.getUser()); if (StringUtils.isNotBlank(gdpr) && StringUtils.isNotBlank(consent)) { - uriBuilder - .addParameter("gdpr", gdpr) - .addParameter("gdpr_consent", consent); + parameterizedUri + .addQueryParam("gdpr", gdpr) + .addQueryParam("gdpr_consent", consent); } return AD_SOURCE_URL.formatted( extImp.getAdslotId(), extImp.getSupplyId(), yieldlabBid.getAdSize(), - uriBuilder.toString().replace("?", "")); + parameterizedUri.expand().replace("?", "")); } private ObjectNode resolveBidExt(YieldlabBid bid, List errors) { diff --git a/src/main/java/org/prebid/server/bidder/zeroclickfraud/ZeroclickfraudBidder.java b/src/main/java/org/prebid/server/bidder/zeroclickfraud/ZeroclickfraudBidder.java index c405c0981ae..77fd21ee2f6 100644 --- a/src/main/java/org/prebid/server/bidder/zeroclickfraud/ZeroclickfraudBidder.java +++ b/src/main/java/org/prebid/server/bidder/zeroclickfraud/ZeroclickfraudBidder.java @@ -40,11 +40,11 @@ public class ZeroclickfraudBidder implements Bidder { private static final String HOST = "{{Host}}"; private static final String SOURCE_ID = "{{SourceId}}"; - private final String endpointTemplate; + private final String endpoint; private final JacksonMapper mapper; - public ZeroclickfraudBidder(String endpointTemplate, JacksonMapper mapper) { - this.endpointTemplate = HttpUtil.validateUrl(Objects.requireNonNull(endpointTemplate)); + public ZeroclickfraudBidder(String endpoint, JacksonMapper mapper) { + this.endpoint = HttpUtil.validateUrl(Objects.requireNonNull(endpoint)); this.mapper = Objects.requireNonNull(mapper); } @@ -89,7 +89,7 @@ private ExtImpZeroclickfraud parseAndValidateImpExt(ObjectNode extNode) { private HttpRequest makeHttpRequest(ExtImpZeroclickfraud extImpZeroclickfraud, List imps, BidRequest bidRequest) { - final String uri = endpointTemplate + final String uri = endpoint .replace(HOST, extImpZeroclickfraud.getHost()) .replace(SOURCE_ID, extImpZeroclickfraud.getSourceId().toString()); diff --git a/src/main/java/org/prebid/server/bidder/zmaticoo/ZMaticooBidder.java b/src/main/java/org/prebid/server/bidder/zmaticoo/ZMaticooBidder.java index 028d3dbc6de..d2a8c6de6a9 100644 --- a/src/main/java/org/prebid/server/bidder/zmaticoo/ZMaticooBidder.java +++ b/src/main/java/org/prebid/server/bidder/zmaticoo/ZMaticooBidder.java @@ -178,5 +178,4 @@ private static BidType getBidMediaType(Bid bid) { "unrecognized bid type in response from zmaticoo for bid " + bid.getImpid()); }; } - } diff --git a/src/main/java/org/prebid/server/cache/CoreCacheService.java b/src/main/java/org/prebid/server/cache/CoreCacheService.java index 6b028eb9ae8..c591e6090e7 100644 --- a/src/main/java/org/prebid/server/cache/CoreCacheService.java +++ b/src/main/java/org/prebid/server/cache/CoreCacheService.java @@ -9,7 +9,6 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.auction.model.AuctionContext; import org.prebid.server.auction.model.BidInfo; import org.prebid.server.auction.model.CachedDebugLog; @@ -43,11 +42,11 @@ import org.prebid.server.settings.model.AccountAuctionConfig; import org.prebid.server.util.HttpUtil; import org.prebid.server.util.ObjectUtil; +import org.prebid.server.util.Uri; import org.prebid.server.vast.VastModifier; import org.prebid.server.vertx.httpclient.HttpClient; import org.prebid.server.vertx.httpclient.model.HttpClientResponse; -import java.net.URISyntaxException; import java.net.URL; import java.time.Clock; import java.util.ArrayList; @@ -76,6 +75,7 @@ public class CoreCacheService { private final HttpClient httpClient; private final URL externalEndpointUrl; private final URL internalEndpointUrl; + private final Uri cachedObjectEndpoint; private final String cachedAssetUrlTemplate; private final long expectedCacheTimeMs; private final VastModifier vastModifier; @@ -111,6 +111,8 @@ public CoreCacheService( this.httpClient = Objects.requireNonNull(httpClient); this.externalEndpointUrl = Objects.requireNonNull(externalEndpointUrl); this.internalEndpointUrl = internalEndpointUrl; + this.cachedObjectEndpoint = Uri.of( + ObjectUtils.firstNonNull(internalEndpointUrl, externalEndpointUrl).toString()); this.cachedAssetUrlTemplate = Objects.requireNonNull(cachedAssetUrlTemplate); this.expectedCacheTimeMs = expectedCacheTimeMs; this.vastModifier = Objects.requireNonNull(vastModifier); @@ -657,18 +659,10 @@ public Future getCachedObject(String key, String ch, Timeout return Future.failedFuture(new TimeoutException("Timeout has been exceeded")); } - final URL endpointUrl = ObjectUtils.firstNonNull(internalEndpointUrl, externalEndpointUrl); - final String url; - try { - final URIBuilder uriBuilder = new URIBuilder(endpointUrl.toString()); - uriBuilder.addParameter(UUID_QUERY_PARAMETER, key); - if (StringUtils.isNotBlank(ch)) { - uriBuilder.addParameter(CH_QUERY_PARAMETER, ch); - } - url = uriBuilder.build().toString(); - } catch (URISyntaxException e) { - return Future.failedFuture(new IllegalArgumentException("Configured cache url is malformed", e)); - } + final String url = cachedObjectEndpoint + .addQueryParam(UUID_QUERY_PARAMETER, key) + .addQueryParam(CH_QUERY_PARAMETER, StringUtils.isNotBlank(ch) ? ch : null) + .expand(); final long startTime = clock.millis(); return httpClient.get(url, cacheHeaders, remainingTimeout) diff --git a/src/main/java/org/prebid/server/cache/utils/CacheServiceUtil.java b/src/main/java/org/prebid/server/cache/utils/CacheServiceUtil.java index fdde5f610c0..5e4fad67862 100644 --- a/src/main/java/org/prebid/server/cache/utils/CacheServiceUtil.java +++ b/src/main/java/org/prebid/server/cache/utils/CacheServiceUtil.java @@ -4,6 +4,8 @@ import org.prebid.server.util.HttpUtil; import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; public class CacheServiceUtil { @@ -17,28 +19,29 @@ private CacheServiceUtil() { public static URL getCacheEndpointUrl(String cacheSchema, String cacheHost, String path) { try { - final URL baseUrl = getCacheBaseUrl(cacheSchema, cacheHost); - return new URL(baseUrl, path); - } catch (MalformedURLException e) { + return toUrl(cacheSchema, cacheHost, path, null); + } catch (URISyntaxException | MalformedURLException e) { throw new IllegalArgumentException("Could not get cache endpoint for prebid cache service", e); } } - private static URL getCacheBaseUrl(String cacheSchema, String cacheHost) throws MalformedURLException { - return new URL(cacheSchema + "://" + cacheHost); - } - public static String getCachedAssetUrlTemplate(String cacheSchema, String cacheHost, String path, String cacheQuery) { try { - final URL baseUrl = getCacheBaseUrl(cacheSchema, cacheHost); - return new URL(baseUrl, path + "?" + cacheQuery).toString(); - } catch (MalformedURLException e) { + return toUrl(cacheSchema, cacheHost, path, cacheQuery).toString(); + } catch (URISyntaxException | MalformedURLException e) { throw new IllegalArgumentException("Could not get cached asset url template for prebid cache service", e); } } + private static URL toUrl(String cacheSchema, + String cacheHost, + String path, + String cacheQuery) throws URISyntaxException, MalformedURLException { + + return new URI(cacheSchema, cacheHost, path, cacheQuery, null).toURL(); + } } diff --git a/src/main/java/org/prebid/server/floors/PriceFloorFetcher.java b/src/main/java/org/prebid/server/floors/PriceFloorFetcher.java index b1cc8c257b2..4db7d31d0e7 100644 --- a/src/main/java/org/prebid/server/floors/PriceFloorFetcher.java +++ b/src/main/java/org/prebid/server/floors/PriceFloorFetcher.java @@ -2,6 +2,7 @@ import com.github.benmanes.caffeine.cache.Caffeine; import io.netty.channel.ConnectTimeoutException; +import io.netty.handler.codec.http.HttpResponseStatus; import io.vertx.core.Future; import io.vertx.core.Vertx; import io.vertx.core.http.HttpHeaders; @@ -11,7 +12,6 @@ import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.exception.ExceptionUtils; -import org.apache.http.HttpStatus; import org.prebid.server.exception.PreBidException; import org.prebid.server.execution.timeout.TimeoutFactory; import org.prebid.server.floors.model.PriceFloorData; @@ -165,7 +165,7 @@ private ResponseCacheInfo parseFloorResponse(HttpClientResponse httpClientRespon AccountPriceFloorsFetchConfig fetchConfig) { final int statusCode = httpClientResponse.getStatusCode(); - if (statusCode != HttpStatus.SC_OK) { + if (statusCode != HttpResponseStatus.OK.code()) { throw new PreBidException("Failed to request, provider respond with status %s".formatted(statusCode)); } final String body = httpClientResponse.getBody(); diff --git a/src/main/java/org/prebid/server/handler/OptoutHandler.java b/src/main/java/org/prebid/server/handler/OptoutHandler.java index 5d9885c70ec..aaf805ec7b2 100644 --- a/src/main/java/org/prebid/server/handler/OptoutHandler.java +++ b/src/main/java/org/prebid/server/handler/OptoutHandler.java @@ -17,8 +17,6 @@ import org.prebid.server.vertx.verticles.server.HttpEndpoint; import org.prebid.server.vertx.verticles.server.application.ApplicationResource; -import java.net.MalformedURLException; -import java.net.URL; import java.util.List; import java.util.Objects; @@ -121,9 +119,8 @@ private static String getRequestParam(RoutingContext routingContext, String para public static String getOptoutRedirectUrl(String externalUrl) { try { - final URL url = new URL(externalUrl); - return new URL(url.toExternalForm() + "/static/optout.html").toString(); - } catch (MalformedURLException e) { + return HttpUtil.parseUrl(externalUrl + "/static/optout.html").toString(); + } catch (IllegalArgumentException e) { throw new IllegalArgumentException("Could not get optout redirect url", e); } } diff --git a/src/main/java/org/prebid/server/handler/info/filters/BidderInfoFilterStrategy.java b/src/main/java/org/prebid/server/handler/info/filters/BidderInfoFilterStrategy.java index 6157e10db86..2df354ff643 100644 --- a/src/main/java/org/prebid/server/handler/info/filters/BidderInfoFilterStrategy.java +++ b/src/main/java/org/prebid/server/handler/info/filters/BidderInfoFilterStrategy.java @@ -21,5 +21,4 @@ static boolean lookUpQueryParamInContext(String queryParamName, RoutingContext r return Boolean.parseBoolean(queryParamValue); } - } diff --git a/src/main/java/org/prebid/server/metric/CacheModuleStorageMetrics.java b/src/main/java/org/prebid/server/metric/CacheModuleStorageMetrics.java index 5bc52b503cb..fe77c8f5eb6 100644 --- a/src/main/java/org/prebid/server/metric/CacheModuleStorageMetrics.java +++ b/src/main/java/org/prebid/server/metric/CacheModuleStorageMetrics.java @@ -50,5 +50,4 @@ CacheCreativeSizeMetrics entrySize() { CacheCreativeTtlMetrics entryTtl() { return entryTtlMetrics; } - } diff --git a/src/main/java/org/prebid/server/metric/CacheReadMetrics.java b/src/main/java/org/prebid/server/metric/CacheReadMetrics.java index 356d96fb9d1..074658f689f 100644 --- a/src/main/java/org/prebid/server/metric/CacheReadMetrics.java +++ b/src/main/java/org/prebid/server/metric/CacheReadMetrics.java @@ -16,5 +16,4 @@ public class CacheReadMetrics extends UpdatableMetrics { private static Function nameCreator(String prefix) { return metricName -> "%s.read.%s".formatted(prefix, metricName); } - } diff --git a/src/main/java/org/prebid/server/metric/CacheVtrackMetrics.java b/src/main/java/org/prebid/server/metric/CacheVtrackMetrics.java index e3a44639297..053b5df5c83 100644 --- a/src/main/java/org/prebid/server/metric/CacheVtrackMetrics.java +++ b/src/main/java/org/prebid/server/metric/CacheVtrackMetrics.java @@ -50,5 +50,4 @@ CacheCreativeSizeMetrics creativeSize() { CacheCreativeTtlMetrics creativeTtl() { return creativeTtlMetrics; } - } diff --git a/src/main/java/org/prebid/server/privacy/gdpr/tcfstrategies/purpose/Purpose07Strategy.java b/src/main/java/org/prebid/server/privacy/gdpr/tcfstrategies/purpose/Purpose07Strategy.java index 8e388c043c9..ae90f26d53f 100644 --- a/src/main/java/org/prebid/server/privacy/gdpr/tcfstrategies/purpose/Purpose07Strategy.java +++ b/src/main/java/org/prebid/server/privacy/gdpr/tcfstrategies/purpose/Purpose07Strategy.java @@ -29,5 +29,4 @@ public void allowNaturally(PrivacyEnforcementAction privacyEnforcementAction) { public PurposeCode getPurpose() { return PurposeCode.SEVEN; } - } diff --git a/src/main/java/org/prebid/server/privacy/gdpr/vendorlist/VendorListService.java b/src/main/java/org/prebid/server/privacy/gdpr/vendorlist/VendorListService.java index 51c9b3e9252..0826c777757 100644 --- a/src/main/java/org/prebid/server/privacy/gdpr/vendorlist/VendorListService.java +++ b/src/main/java/org/prebid/server/privacy/gdpr/vendorlist/VendorListService.java @@ -59,7 +59,7 @@ public class VendorListService { private final double logSamplingRate; private final String cacheDir; - private final String endpointTemplate; + private final String endpoint; private final int defaultTimeoutMs; private final long refreshMissingListPeriodMs; private final boolean deprecated; @@ -82,7 +82,7 @@ public class VendorListService { public VendorListService(double logSamplingRate, String cacheDir, - String endpointTemplate, + String endpoint, int defaultTimeoutMs, long refreshMissingListPeriodMs, boolean deprecated, @@ -97,7 +97,7 @@ public VendorListService(double logSamplingRate, this.logSamplingRate = logSamplingRate; this.cacheDir = Objects.requireNonNull(cacheDir); - this.endpointTemplate = Objects.requireNonNull(endpointTemplate); + this.endpoint = Objects.requireNonNull(endpoint); this.defaultTimeoutMs = defaultTimeoutMs; this.refreshMissingListPeriodMs = refreshMissingListPeriodMs; this.deprecated = deprecated; @@ -276,7 +276,7 @@ private boolean shouldFallback(int version) { * Proceeds obtaining new vendor list from HTTP resource. */ private void fetchNewVendorListFor(int version) { - final String url = endpointTemplate.replace(VERSION_PLACEHOLDER, String.valueOf(version)); + final String url = endpoint.replace(VERSION_PLACEHOLDER, String.valueOf(version)); httpClient.get(url, defaultTimeoutMs) .map(response -> processResponse(response, version)) diff --git a/src/main/java/org/prebid/server/settings/HttpApplicationSettings.java b/src/main/java/org/prebid/server/settings/HttpApplicationSettings.java index c0d899508c4..ed0170c07d4 100644 --- a/src/main/java/org/prebid/server/settings/HttpApplicationSettings.java +++ b/src/main/java/org/prebid/server/settings/HttpApplicationSettings.java @@ -8,7 +8,6 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.URIBuilder; import org.prebid.server.exception.PreBidException; import org.prebid.server.execution.timeout.Timeout; import org.prebid.server.json.DecodeException; @@ -24,10 +23,10 @@ import org.prebid.server.settings.proto.response.HttpAccountsResponse; import org.prebid.server.settings.proto.response.HttpFetcherResponse; import org.prebid.server.util.HttpUtil; +import org.prebid.server.util.Uri; import org.prebid.server.vertx.httpclient.HttpClient; import org.prebid.server.vertx.httpclient.model.HttpClientResponse; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -79,9 +78,9 @@ public class HttpApplicationSettings implements ApplicationSettings { }; private final boolean isRfc3986Compatible; - private final String endpoint; - private final String ampEndpoint; - private final String videoEndpoint; + private final Uri endpoint; + private final Uri ampEndpoint; + private final Uri videoEndpoint; private final String categoryEndpoint; private final HttpClient httpClient; private final JacksonMapper mapper; @@ -95,10 +94,10 @@ public HttpApplicationSettings(boolean isRfc3986Compatible, JacksonMapper mapper) { this.isRfc3986Compatible = isRfc3986Compatible; - this.endpoint = HttpUtil.validateUrlSyntax(Objects.requireNonNull(endpoint)); - this.ampEndpoint = HttpUtil.validateUrlSyntax(Objects.requireNonNull(ampEndpoint)); - this.videoEndpoint = HttpUtil.validateUrlSyntax(Objects.requireNonNull(videoEndpoint)); - this.categoryEndpoint = HttpUtil.validateUrlSyntax(Objects.requireNonNull(categoryEndpoint)); + this.endpoint = Uri.of(endpoint); + this.ampEndpoint = Uri.of(ampEndpoint); + this.videoEndpoint = Uri.of(videoEndpoint); + this.categoryEndpoint = HttpUtil.validateUrl(Objects.requireNonNull(categoryEndpoint)); this.httpClient = Objects.requireNonNull(httpClient); this.mapper = Objects.requireNonNull(mapper); } @@ -122,24 +121,21 @@ private Future> fetchAccountsByIds(Set accountIds, Timeout return Future.failedFuture(new TimeoutException("Timeout has been exceeded")); } - return httpClient.get(accountsRequestUrlFrom(endpoint, accountIds), HttpUtil.headers(), remainingTimeout) + return httpClient.get( + accountsRequestUrlFrom(endpoint, accountIds), + HttpUtil.headers(), + remainingTimeout) .map(response -> processAccountsResponse(response, accountIds)); } - private String accountsRequestUrlFrom(String endpoint, Set accountIds) { - try { - final URIBuilder uriBuilder = new URIBuilder(endpoint); - if (!accountIds.isEmpty()) { - if (isRfc3986Compatible) { - accountIds.forEach(accountId -> uriBuilder.addParameter("account-id", accountId)); - } else { - uriBuilder.addParameter("account-ids", "[\"%s\"]".formatted(joinIds(accountIds))); - } - } - return uriBuilder.build().toString(); - } catch (URISyntaxException e) { - throw new PreBidException("URL %s has bad syntax".formatted(endpoint)); + private String accountsRequestUrlFrom(Uri endpoint, Set accountIds) { + final Uri.ParameterizedUri builder = endpoint.parameterized(); + if (isRfc3986Compatible) { + builder.addQueryParam("account-id", accountIds); + } else { + builder.addQueryParam("account-ids", "[\"%s\"]".formatted(joinIds(accountIds))); } + return builder.expand(); } private Set processAccountsResponse(HttpClientResponse httpClientResponse, Set accountIds) { @@ -188,7 +184,7 @@ public Future> getVideoStoredData(String accountId, return fetchStoredData(videoEndpoint, requestIds, impIds, timeout); } - private Future> fetchStoredData(String endpoint, + private Future> fetchStoredData(Uri endpoint, Set requestIds, Set impIds, Timeout timeout) { @@ -203,7 +199,10 @@ private Future> fetchStoredData(String endpoint, return failStoredDataResponse(new TimeoutException("Timeout has been exceeded"), requestIds, impIds); } - return httpClient.get(storeRequestUrlFrom(endpoint, requestIds, impIds), HttpUtil.headers(), remainingTimeout) + return httpClient.get( + storeRequestUrlFrom(endpoint, requestIds, impIds), + HttpUtil.headers(), + remainingTimeout) .map(response -> processStoredDataResponse(response, requestIds, impIds)) .recover(exception -> failStoredDataResponse(exception, requestIds, impIds)); } @@ -231,27 +230,23 @@ private static StoredDataResult toFailedStoredDataResult(Set req return StoredDataResult.of(Collections.emptyMap(), Collections.emptyMap(), Collections.singletonList(error)); } - private String storeRequestUrlFrom(String endpoint, Set requestIds, Set impIds) { - try { - final URIBuilder uriBuilder = new URIBuilder(endpoint); - if (!requestIds.isEmpty()) { - if (isRfc3986Compatible) { - requestIds.forEach(requestId -> uriBuilder.addParameter("request-id", requestId)); - } else { - uriBuilder.addParameter("request-ids", "[\"%s\"]".formatted(joinIds(requestIds))); - } + private String storeRequestUrlFrom(Uri endpoint, Set requestIds, Set impIds) { + final Uri.ParameterizedUri builder = endpoint.parameterized(); + if (!requestIds.isEmpty()) { + if (isRfc3986Compatible) { + builder.addQueryParam("request-id", requestIds); + } else { + builder.addQueryParam("request-ids", "[\"%s\"]".formatted(joinIds(requestIds))); } - if (!impIds.isEmpty()) { - if (isRfc3986Compatible) { - impIds.forEach(impId -> uriBuilder.addParameter("imp-id", impId)); - } else { - uriBuilder.addParameter("imp-ids", "[\"%s\"]".formatted(joinIds(impIds))); - } + } + if (!impIds.isEmpty()) { + if (isRfc3986Compatible) { + builder.addQueryParam("imp-id", impIds); + } else { + builder.addQueryParam("imp-ids", "[\"%s\"]".formatted(joinIds(impIds))); } - return uriBuilder.build().toString(); - } catch (URISyntaxException e) { - throw new PreBidException("URL %s has bad syntax".formatted(endpoint)); } + return builder.expand(); } private StoredDataResult processStoredDataResponse(HttpClientResponse httpClientResponse, diff --git a/src/main/java/org/prebid/server/spring/config/GeoLocationConfiguration.java b/src/main/java/org/prebid/server/spring/config/GeoLocationConfiguration.java index bfb56b8c0c1..5b513ce4f29 100644 --- a/src/main/java/org/prebid/server/spring/config/GeoLocationConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/GeoLocationConfiguration.java @@ -194,5 +194,4 @@ GeoLocationServiceWrapper geoLocationServiceWrapper( implicitParametersResolver, metrics); } - } diff --git a/src/main/java/org/prebid/server/spring/config/bidder/AdtrgtmeConfiguration.java b/src/main/java/org/prebid/server/spring/config/bidder/AdtrgtmeConfiguration.java index 7a578330380..77fde549ad9 100644 --- a/src/main/java/org/prebid/server/spring/config/bidder/AdtrgtmeConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/bidder/AdtrgtmeConfiguration.java @@ -38,5 +38,4 @@ BidderDeps adtrgtmeBidderDeps(BidderConfigurationProperties adtrgtmeConfiguratio .bidderCreator(config -> new AdtrgtmeBidder(config.getEndpoint(), mapper)) .assemble(); } - } diff --git a/src/main/java/org/prebid/server/spring/config/bidder/AkceloConfiguration.java b/src/main/java/org/prebid/server/spring/config/bidder/AkceloConfiguration.java index 3b6472eac49..83282d4a6b3 100644 --- a/src/main/java/org/prebid/server/spring/config/bidder/AkceloConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/bidder/AkceloConfiguration.java @@ -39,5 +39,4 @@ BidderDeps akceloBidderDeps(BidderConfigurationProperties akceloConfigurationPro .bidderCreator(config -> new AkceloBidder(config.getEndpoint(), mapper)) .assemble(); } - } diff --git a/src/main/java/org/prebid/server/spring/config/bidder/AlgorixConfiguration.java b/src/main/java/org/prebid/server/spring/config/bidder/AlgorixConfiguration.java index 1082e4c0b5a..6468dadb2b9 100644 --- a/src/main/java/org/prebid/server/spring/config/bidder/AlgorixConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/bidder/AlgorixConfiguration.java @@ -39,5 +39,4 @@ BidderDeps algorixBidderDeps(BidderConfigurationProperties algorixConfigurationP .bidderCreator(config -> new AlgorixBidder(config.getEndpoint(), mapper)) .assemble(); } - } diff --git a/src/main/java/org/prebid/server/spring/config/bidder/BidmachineConfiguration.java b/src/main/java/org/prebid/server/spring/config/bidder/BidmachineConfiguration.java index d5171cff6fb..55bc7d24ed5 100644 --- a/src/main/java/org/prebid/server/spring/config/bidder/BidmachineConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/bidder/BidmachineConfiguration.java @@ -38,5 +38,4 @@ BidderDeps bidmachineBidderDeps(BidderConfigurationProperties bidmachineConfigur .bidderCreator(config -> new BidmachineBidder(config.getEndpoint(), mapper)) .assemble(); } - } diff --git a/src/main/java/org/prebid/server/spring/config/bidder/HuaweiAdsConfiguration.java b/src/main/java/org/prebid/server/spring/config/bidder/HuaweiAdsConfiguration.java index ba69ed885b1..89c216c8ef5 100644 --- a/src/main/java/org/prebid/server/spring/config/bidder/HuaweiAdsConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/bidder/HuaweiAdsConfiguration.java @@ -103,5 +103,4 @@ private static class ExtraInfo { String asianEndpoint; } - } diff --git a/src/main/java/org/prebid/server/spring/config/bidder/KargoConfiguration.java b/src/main/java/org/prebid/server/spring/config/bidder/KargoConfiguration.java index d01076cae25..a6b89044b43 100644 --- a/src/main/java/org/prebid/server/spring/config/bidder/KargoConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/bidder/KargoConfiguration.java @@ -38,5 +38,4 @@ BidderDeps kargoBidderDeps(BidderConfigurationProperties kargoConfigurationPrope .bidderCreator(config -> new KargoBidder(config.getEndpoint(), mapper)) .assemble(); } - } diff --git a/src/main/java/org/prebid/server/spring/config/bidder/PrecisoConfiguration.java b/src/main/java/org/prebid/server/spring/config/bidder/PrecisoConfiguration.java index dfa65428aac..aa6ac0ef386 100644 --- a/src/main/java/org/prebid/server/spring/config/bidder/PrecisoConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/bidder/PrecisoConfiguration.java @@ -43,5 +43,4 @@ BidderDeps precisoBidderDeps(BidderConfigurationProperties precisoConfigurationP .assemble(); } - } diff --git a/src/main/java/org/prebid/server/spring/config/bidder/PwbidConfiguration.java b/src/main/java/org/prebid/server/spring/config/bidder/PwbidConfiguration.java index d076873bdf0..ffc1ac3f8b6 100644 --- a/src/main/java/org/prebid/server/spring/config/bidder/PwbidConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/bidder/PwbidConfiguration.java @@ -38,5 +38,4 @@ BidderDeps pwbidBidderDeps(BidderConfigurationProperties pwbidConfigurationPrope .bidderCreator(config -> new PwbidBidder(config.getEndpoint(), mapper)) .assemble(); } - } diff --git a/src/main/java/org/prebid/server/spring/config/bidder/SmartadserverConfiguration.java b/src/main/java/org/prebid/server/spring/config/bidder/SmartadserverConfiguration.java index 3d831685aff..b6fabf5ae56 100644 --- a/src/main/java/org/prebid/server/spring/config/bidder/SmartadserverConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/bidder/SmartadserverConfiguration.java @@ -38,8 +38,7 @@ BidderDeps smartadserverBidderDeps(SmartadserverConfigurationProperties smartads return BidderDepsAssembler.forBidder(BIDDER_NAME) .withConfig(smartadserverConfigurationProperties) .usersyncerCreator(UsersyncerCreator.create(externalUrl)) - .bidderCreator(config -> new SmartadserverBidder( - config.getEndpoint(), config.getSecondaryEndpoint(), mapper)) + .bidderCreator(config -> new SmartadserverBidder(config.getEndpoint(), config.getPgEndpoint(), mapper)) .assemble(); } @@ -48,6 +47,6 @@ BidderDeps smartadserverBidderDeps(SmartadserverConfigurationProperties smartads @NoArgsConstructor private static class SmartadserverConfigurationProperties extends BidderConfigurationProperties { - private String secondaryEndpoint; + private String pgEndpoint; } } diff --git a/src/main/java/org/prebid/server/spring/config/bidder/TealConfiguration.java b/src/main/java/org/prebid/server/spring/config/bidder/TealConfiguration.java index cbbff678a7e..d2ee00de8b5 100644 --- a/src/main/java/org/prebid/server/spring/config/bidder/TealConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/bidder/TealConfiguration.java @@ -38,5 +38,4 @@ BidderDeps tealBidderDeps(BidderConfigurationProperties tealConfigurationPropert .bidderCreator(config -> new TealBidder(config.getEndpoint(), mapper)) .assemble(); } - } diff --git a/src/main/java/org/prebid/server/spring/config/bidder/UndertoneConfiguration.java b/src/main/java/org/prebid/server/spring/config/bidder/UndertoneConfiguration.java index a51380096ea..008bfd9c1a2 100644 --- a/src/main/java/org/prebid/server/spring/config/bidder/UndertoneConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/bidder/UndertoneConfiguration.java @@ -38,5 +38,4 @@ BidderDeps undertoneBidderDeps(BidderConfigurationProperties undertoneConfigurat .bidderCreator(config -> new UndertoneBidder(config.getEndpoint(), mapper)) .assemble(); } - } diff --git a/src/main/java/org/prebid/server/util/HttpUtil.java b/src/main/java/org/prebid/server/util/HttpUtil.java index e08a276c6fa..824f997472d 100644 --- a/src/main/java/org/prebid/server/util/HttpUtil.java +++ b/src/main/java/org/prebid/server/util/HttpUtil.java @@ -8,14 +8,13 @@ import io.vertx.core.http.HttpServerResponse; import io.vertx.ext.web.RoutingContext; import org.apache.commons.lang3.StringUtils; -import org.apache.commons.validator.routines.UrlValidator; import org.prebid.server.log.ConditionalLogger; import org.prebid.server.log.Logger; import org.prebid.server.log.LoggerFactory; import org.prebid.server.model.Endpoint; import org.prebid.server.model.HttpRequestContext; -import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.net.URLDecoder; import java.net.URLEncoder; @@ -28,9 +27,6 @@ import java.util.function.Consumer; import java.util.stream.Collectors; -/** - * This class consists of {@code static} utility methods for operating HTTP requests. - */ public final class HttpUtil { private static final Logger logger = LoggerFactory.getLogger(HttpUtil.class); @@ -82,55 +78,26 @@ public final class HttpUtil { public static final CharSequence SEC_CH_UA_MODEL = HttpHeaders.createOptimized("Sec-CH-UA-Model"); public static final CharSequence SEC_CH_UA_FULL_VERSION_LIST = HttpHeaders.createOptimized("Sec-CH-UA-Full-Version-List"); - public static final String MACROS_OPEN = "{{"; - public static final String MACROS_CLOSE = "}}"; - - private static final UrlValidator URL_VALIDAROR = UrlValidator.getInstance(); private HttpUtil() { } - /** - * Checks the input string for using as URL. - */ - @Deprecated - public static String validateUrl(String url) { - if (containsMacrosses(url)) { - return url; - } - + public static URL parseUrl(String url) { try { - return new URL(url).toString(); - } catch (MalformedURLException e) { + return new URI(url).toURL(); + } catch (Exception e) { throw new IllegalArgumentException("URL supplied is not valid: " + url, e); } } - public static String validateUrlSyntax(String url) { - if (containsMacrosses(url) || URL_VALIDAROR.isValid(url)) { - return url; - } - - throw new IllegalArgumentException("URL supplied is not valid: " + url); - } - - // TODO: We need our own way to work with url macrosses - private static boolean containsMacrosses(String url) { - return StringUtils.contains(url, MACROS_OPEN) && StringUtils.contains(url, MACROS_CLOSE); + public static String validateUrl(String url) { + return parseUrl(url).toString(); } - /** - * Returns encoded URL for the given value. - *

- * The result can be safety used as the query string. - */ public static String encodeUrl(String value) { return URLEncoder.encode(value, StandardCharsets.UTF_8); } - /** - * Returns decoded value if supplied is not null, otherwise returns null. - */ public static String decodeUrl(String value) { if (StringUtils.isBlank(value)) { return null; @@ -138,18 +105,12 @@ public static String decodeUrl(String value) { return URLDecoder.decode(value, StandardCharsets.UTF_8); } - /** - * Creates general headers for request. - */ public static MultiMap headers() { return MultiMap.caseInsensitiveMultiMap() .add(CONTENT_TYPE_HEADER, APPLICATION_JSON_CONTENT_TYPE) .add(ACCEPT_HEADER, HttpHeaderValues.APPLICATION_JSON); } - /** - * Creates header from name and value, when value is not null or empty string. - */ public static void addHeaderIfValueIsNotEmpty(MultiMap headers, CharSequence headerName, CharSequence headerValue) { if (StringUtils.isNotEmpty(headerValue)) { headers.add(headerName, headerValue); @@ -160,9 +121,10 @@ public static String getHostFromUrl(String url) { if (StringUtils.isBlank(url)) { return null; } + try { - return new URL(url).getHost(); - } catch (MalformedURLException e) { + return parseUrl(url).getHost(); + } catch (IllegalArgumentException e) { return null; } } diff --git a/src/main/java/org/prebid/server/util/Uri.java b/src/main/java/org/prebid/server/util/Uri.java new file mode 100644 index 00000000000..7de1d7fed1b --- /dev/null +++ b/src/main/java/org/prebid/server/util/Uri.java @@ -0,0 +1,125 @@ +package org.prebid.server.util; + +import io.vertx.uritemplate.ExpandOptions; +import io.vertx.uritemplate.UriTemplate; +import io.vertx.uritemplate.Variables; + +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Objects; +import java.util.stream.Collectors; + +public class Uri { + + private static final ExpandOptions REQUIRE_ALL_PARAMS = new ExpandOptions().setAllowVariableMiss(false); + + private static final String DYNAMIC_QUERY_PARAM = "DYNAMIC_QUERY_PARAM"; + private static final String DYNAMIC_QUERY_START_MACRO = "{?" + DYNAMIC_QUERY_PARAM + "*}"; + private static final String DYNAMIC_QUERY_CONTINUATION_MACRO = "{&" + DYNAMIC_QUERY_PARAM + "*}"; + + private final UriTemplate template; + + private Uri(String uri) { + validateTemplate(Objects.requireNonNull(uri)); + this.template = UriTemplate.of(uri + chooseMacro(uri)); + } + + public static Uri of(String uri) throws IllegalArgumentException { + return new Uri(uri); + } + + private static void validateTemplate(String template) { + if (template.contains("{?")) { + throw new IllegalArgumentException( + Uri.class.getName() + " does not support optional query variables."); + } + + HttpUtil.validateUrl(template + .replace("{", "") + .replace("}", "")); + } + + private static String chooseMacro(String template) { + return template.contains("?") + ? DYNAMIC_QUERY_CONTINUATION_MACRO + : DYNAMIC_QUERY_START_MACRO; + } + + public ParameterizedUri parameterized() { + return new ParameterizedUri(template); + } + + public ParameterizedUri replaceMacro(String key, String value) { + return parameterized().replaceMacro(key, value); + } + + public ParameterizedUri replaceMacro(String key, List value) { + return parameterized().replaceMacro(key, value); + } + + public ParameterizedUri addQueryParam(String key, String value) { + return parameterized().addQueryParam(key, value); + } + + public ParameterizedUri addQueryParam(String key, Collection value) { + return parameterized().addQueryParam(key, value); + } + + @Override + public String toString() throws NoSuchElementException { + return parameterized().expand(); + } + + public static class ParameterizedUri { + + private final UriTemplate template; + private final Variables variables; + + private ParameterizedUri(UriTemplate template) { + this.template = template; + this.variables = Variables.variables(); + variables.set(DYNAMIC_QUERY_PARAM, new LinkedHashMap<>()); + } + + public ParameterizedUri replaceMacro(String key, String value) { + variables.set(key, value); + return this; + } + + public ParameterizedUri replaceMacro(String key, List value) { + variables.set(key, value); + return this; + } + + public ParameterizedUri addQueryParam(String key, String value) { + if (value != null) { + variables.getMap(DYNAMIC_QUERY_PARAM).put(key, value); + } + return this; + } + + public ParameterizedUri addQueryParam(String key, Collection value) { + if (value == null) { + return this; + } + + final String listAsString = value.stream() + .map(Objects::toString) + .collect(Collectors.joining(",")); + variables.getMap(DYNAMIC_QUERY_PARAM).put(key, listAsString); + + return this; + } + + public String expand() throws NoSuchElementException { + return template.expandToString(variables, REQUIRE_ALL_PARAMS); + } + + @Override + public String toString() { + return expand(); + } + } +} diff --git a/src/main/java/org/prebid/server/validation/ImpValidator.java b/src/main/java/org/prebid/server/validation/ImpValidator.java index 9a31aa6e52d..c254ac00bfc 100644 --- a/src/main/java/org/prebid/server/validation/ImpValidator.java +++ b/src/main/java/org/prebid/server/validation/ImpValidator.java @@ -668,5 +668,4 @@ private static String documentationOnPage(int page) { private static boolean hasPositiveValue(Integer value) { return value != null && value > 0; } - } diff --git a/src/main/java/org/prebid/server/validation/RequestValidator.java b/src/main/java/org/prebid/server/validation/RequestValidator.java index 958c59d3a5a..b7cbb98d775 100644 --- a/src/main/java/org/prebid/server/validation/RequestValidator.java +++ b/src/main/java/org/prebid/server/validation/RequestValidator.java @@ -690,5 +690,4 @@ private void validateRegs(Regs regs) throws ValidationException { throw new ValidationException("request.regs.ext.gdpr must be either 0 or 1"); } } - } diff --git a/src/main/java/org/prebid/server/vertx/httpclient/BasicHttpClient.java b/src/main/java/org/prebid/server/vertx/httpclient/BasicHttpClient.java index 35dd808c97d..64157182bb2 100644 --- a/src/main/java/org/prebid/server/vertx/httpclient/BasicHttpClient.java +++ b/src/main/java/org/prebid/server/vertx/httpclient/BasicHttpClient.java @@ -10,9 +10,9 @@ import io.vertx.core.http.HttpMethod; import io.vertx.core.http.RequestOptions; import org.prebid.server.exception.PreBidException; +import org.prebid.server.util.HttpUtil; import org.prebid.server.vertx.httpclient.model.HttpClientResponse; -import java.net.MalformedURLException; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.Objects; @@ -54,8 +54,8 @@ private Future request(HttpMethod method, String url, MultiM final URL absoluteUrl; try { - absoluteUrl = new URL(url); - } catch (MalformedURLException e) { + absoluteUrl = HttpUtil.parseUrl(url); + } catch (IllegalArgumentException e) { return Future.failedFuture(e); } diff --git a/src/main/java/org/prebid/server/vertx/httpclient/CircuitBreakerSecuredHttpClient.java b/src/main/java/org/prebid/server/vertx/httpclient/CircuitBreakerSecuredHttpClient.java index 0843a04de12..b234fc152af 100644 --- a/src/main/java/org/prebid/server/vertx/httpclient/CircuitBreakerSecuredHttpClient.java +++ b/src/main/java/org/prebid/server/vertx/httpclient/CircuitBreakerSecuredHttpClient.java @@ -10,10 +10,10 @@ import org.prebid.server.log.Logger; import org.prebid.server.log.LoggerFactory; import org.prebid.server.metric.Metrics; +import org.prebid.server.util.HttpUtil; import org.prebid.server.vertx.CircuitBreaker; import org.prebid.server.vertx.httpclient.model.HttpClientResponse; -import java.net.MalformedURLException; import java.net.URL; import java.time.Clock; import java.util.Map; @@ -146,8 +146,8 @@ private static String idFrom(String urlAsString) { private static URL parseUrl(String url) { try { - return new URL(url); - } catch (MalformedURLException e) { + return HttpUtil.parseUrl(url); + } catch (IllegalArgumentException e) { throw new PreBidException("Invalid url: " + url, e); } } diff --git a/src/main/resources/bidder-config/eplanning.yaml b/src/main/resources/bidder-config/eplanning.yaml index db89054080a..c81a7a3b5a6 100644 --- a/src/main/resources/bidder-config/eplanning.yaml +++ b/src/main/resources/bidder-config/eplanning.yaml @@ -1,6 +1,6 @@ adapters: eplanning: - endpoint: http://rtb.e-planning.net/pbs/1 + endpoint: http://rtb.e-planning.net/pbs/1/{ClientId}/{DfpClientId}/{RequestTarget}/{Sec} meta-info: maintainer-email: producto@e-planning.net app-media-types: diff --git a/src/main/resources/bidder-config/smartadserver.yaml b/src/main/resources/bidder-config/smartadserver.yaml index 343bec392de..f35175e4445 100644 --- a/src/main/resources/bidder-config/smartadserver.yaml +++ b/src/main/resources/bidder-config/smartadserver.yaml @@ -1,7 +1,7 @@ adapters: smartadserver: - endpoint: https://ssb-global.smartadserver.com - secondary-endpoint: https://prebid-global.smartadserver.com + endpoint: https://ssb-global.smartadserver.com/api/bid + pg-endpoint: https://prebid-global.smartadserver.com/ortb endpoint-compression: gzip aliases: equativ: diff --git a/src/main/resources/bidder-config/tappx.yaml b/src/main/resources/bidder-config/tappx.yaml index ef6541beb8f..f9933c9e6ee 100644 --- a/src/main/resources/bidder-config/tappx.yaml +++ b/src/main/resources/bidder-config/tappx.yaml @@ -1,6 +1,6 @@ adapters: tappx: - endpoint: https://{{subdomain}}.tappx.com + endpoint: https://{subdomain}.tappx.com/{path} meta-info: maintainer-email: tappx@tappx.com app-media-types: diff --git a/src/main/resources/bidder-config/yandex.yaml b/src/main/resources/bidder-config/yandex.yaml index 11800ddb11a..85821885371 100644 --- a/src/main/resources/bidder-config/yandex.yaml +++ b/src/main/resources/bidder-config/yandex.yaml @@ -1,6 +1,6 @@ adapters: yandex: - endpoint: https://bs-metadsp.yandex.ru/prebid/{{PageId}}?imp-id={{ImpId}}&ssp-id=10500 + endpoint: https://bs-metadsp.yandex.ru/prebid/{PageId}?imp-id={ImpId}&ssp-id=10500 endpoint-compression: gzip meta-info: maintainer-email: prebid@yandex-team.ru diff --git a/src/main/resources/bidder-config/yieldlab.yaml b/src/main/resources/bidder-config/yieldlab.yaml index 806d279bc26..d632c3c43fe 100644 --- a/src/main/resources/bidder-config/yieldlab.yaml +++ b/src/main/resources/bidder-config/yieldlab.yaml @@ -1,6 +1,6 @@ adapters: yieldlab: - endpoint: https://ad.yieldlab.net/yp + endpoint: https://ad.yieldlab.net/yp/{AdSlotId} meta-info: maintainer-email: solutions@yieldlab.de app-media-types: diff --git a/src/test/java/org/prebid/server/bidder/aso/AsoBidderTest.java b/src/test/java/org/prebid/server/bidder/aso/AsoBidderTest.java index c97c38cd124..bd88540709c 100644 --- a/src/test/java/org/prebid/server/bidder/aso/AsoBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/aso/AsoBidderTest.java @@ -292,5 +292,4 @@ private static BidderCall givenHttpCall(String body) { HttpResponse.of(200, null, body), null); } - } diff --git a/src/test/java/org/prebid/server/bidder/criteo/CriteoBidderTest.java b/src/test/java/org/prebid/server/bidder/criteo/CriteoBidderTest.java index 291dd35d415..d609a170d2a 100644 --- a/src/test/java/org/prebid/server/bidder/criteo/CriteoBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/criteo/CriteoBidderTest.java @@ -305,5 +305,4 @@ private static ObjectNode givenBidExtWithNetwork(String networkNameValue) { prebid.put("networkName", networkNameValue); return ext; } - } diff --git a/src/test/java/org/prebid/server/bidder/gumgum/GumgumBidderTest.java b/src/test/java/org/prebid/server/bidder/gumgum/GumgumBidderTest.java index 2b00840ed26..f37303c6d98 100644 --- a/src/test/java/org/prebid/server/bidder/gumgum/GumgumBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/gumgum/GumgumBidderTest.java @@ -39,10 +39,10 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; import static org.assertj.core.api.Assertions.tuple; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; import static org.prebid.server.proto.openrtb.ext.response.BidType.banner; import static org.prebid.server.proto.openrtb.ext.response.BidType.video; @@ -115,12 +115,12 @@ public void testMakeHttpRequestsShouldNotSetTagIdFromZoneWhenAdUnitIdIsMissing() assertNotNull(result); assertFalse(result.getValue().isEmpty()); - final byte[] requestBody = result.getValue().get(0).getBody(); + final byte[] requestBody = result.getValue().getFirst().getBody(); final BidRequest modifiedRequest = mapper.readValue(requestBody, BidRequest.class); assertFalse(modifiedRequest.getImp().isEmpty()); - final Imp modifiedImp = modifiedRequest.getImp().get(0); + final Imp modifiedImp = modifiedRequest.getImp().getFirst(); assertNull(modifiedImp.getTagid()); assertEquals("test-site", modifiedRequest.getSite().getId(), "zone123"); @@ -547,5 +547,4 @@ private static BidderCall givenHttpCall(BidRequest bidRequest, Strin HttpResponse.of(200, null, body), null); } - } diff --git a/src/test/java/org/prebid/server/bidder/pwbid/PwbidBidderTest.java b/src/test/java/org/prebid/server/bidder/pwbid/PwbidBidderTest.java index b790ad9033f..c9010e9856d 100644 --- a/src/test/java/org/prebid/server/bidder/pwbid/PwbidBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/pwbid/PwbidBidderTest.java @@ -229,5 +229,4 @@ private static BidResponse givenBidResponse(Function givenHttpCall(BidRequest bidRequest, Strin HttpResponse.of(200, null, body), null); } - } diff --git a/src/test/java/org/prebid/server/bidder/theadx/TheadxBidderTest.java b/src/test/java/org/prebid/server/bidder/theadx/TheadxBidderTest.java index 288ba1f43f0..9afc42fb4f8 100644 --- a/src/test/java/org/prebid/server/bidder/theadx/TheadxBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/theadx/TheadxBidderTest.java @@ -241,5 +241,4 @@ private static BidderCall givenHttpCall(String body) { HttpResponse.of(200, null, body), null); } - } diff --git a/src/test/java/org/prebid/server/bidder/vox/VoxBidderTest.java b/src/test/java/org/prebid/server/bidder/vox/VoxBidderTest.java index b91d5663834..05a815c97bd 100644 --- a/src/test/java/org/prebid/server/bidder/vox/VoxBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/vox/VoxBidderTest.java @@ -279,5 +279,4 @@ private static class VoxImpExt { String imageUrl; Set displaySizes; } - } diff --git a/src/test/java/org/prebid/server/cache/BasicPbcStorageServiceTest.java b/src/test/java/org/prebid/server/cache/BasicPbcStorageServiceTest.java index a995429ba79..d6d0c3bbc15 100644 --- a/src/test/java/org/prebid/server/cache/BasicPbcStorageServiceTest.java +++ b/src/test/java/org/prebid/server/cache/BasicPbcStorageServiceTest.java @@ -21,8 +21,6 @@ import org.prebid.server.vertx.httpclient.HttpClient; import org.prebid.server.vertx.httpclient.model.HttpClientResponse; -import java.net.MalformedURLException; -import java.net.URL; import java.time.Clock; import java.time.Instant; import java.time.ZoneId; @@ -49,10 +47,10 @@ public class BasicPbcStorageServiceTest extends VertxTest { private BasicPbcStorageService target; @BeforeEach - public void setUp() throws MalformedURLException, JsonProcessingException { + public void setUp() throws JsonProcessingException { target = new BasicPbcStorageService( httpClient, - new URL("http://cache-service/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), "pbc-api-key", 10, jacksonMapper, diff --git a/src/test/java/org/prebid/server/cache/CoreCacheServiceTest.java b/src/test/java/org/prebid/server/cache/CoreCacheServiceTest.java index 9138183597f..d37fff76d46 100644 --- a/src/test/java/org/prebid/server/cache/CoreCacheServiceTest.java +++ b/src/test/java/org/prebid/server/cache/CoreCacheServiceTest.java @@ -48,8 +48,6 @@ import org.prebid.server.vertx.httpclient.model.HttpClientResponse; import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; import java.time.Clock; import java.time.Instant; import java.time.ZoneId; @@ -105,12 +103,12 @@ public class CoreCacheServiceTest extends VertxTest { private Timeout expiredTimeout; @BeforeEach - public void setUp() throws MalformedURLException, JsonProcessingException { + public void setUp() throws JsonProcessingException { clock = Clock.fixed(Instant.now(), ZoneId.systemDefault()); target = new CoreCacheService( httpClient, - new URL("http://cache-service/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), null, "http://cache-service-host/cache?uuid=", 100L, @@ -256,13 +254,13 @@ public void cacheBidsOpenrtbShouldTolerateReadingHttpResponseFails() throws Json @Test public void cacheBidsOpenrtbShouldTryCallingInternalEndpointAndTolerateReadingHttpResponseFails() - throws JsonProcessingException, MalformedURLException { + throws JsonProcessingException { // given target = new CoreCacheService( httpClient, - new URL("http://cache-service/cache"), - new URL("http://cache-service-internal/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), + HttpUtil.parseUrl("http://cache-service-internal/cache"), "http://cache-service-host/cache?uuid=", 100L, null, @@ -437,11 +435,11 @@ public void cacheBidsOpenrtbShouldReturnExpectedDebugInfo() throws JsonProcessin } @Test - public void cacheBidsOpenrtbShouldUseApiKeyWhenProvided() throws MalformedURLException { + public void cacheBidsOpenrtbShouldUseApiKeyWhenProvided() { // given target = new CoreCacheService( httpClient, - new URL("http://cache-service/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), null, "http://cache-service-host/cache?uuid=", 100L, @@ -1233,8 +1231,8 @@ public void cachePutObjectsShouldCallInternalCacheEndpointWhenProvided() throws // given target = new CoreCacheService( httpClient, - new URL("http://cache-service/cache"), - new URL("http://cache-service-internal/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), + HttpUtil.parseUrl("http://cache-service-internal/cache"), "http://cache-service-host/cache?uuid=", 100L, null, @@ -1261,7 +1259,7 @@ public void cachePutObjectsShouldCallInternalCacheEndpointWhenProvided() throws .willReturn(new TextNode("modifiedVast")); // when - target.cachePutObjects(asList(firstBidPutObject), true, singleton("bidder1"), "account", 100, "pbjs", timeout); + target.cachePutObjects(singletonList(firstBidPutObject), true, singleton("bidder1"), "account", 100, "pbjs", timeout); // then verify(httpClient).post(eq("http://cache-service-internal/cache"), any(), any(), anyLong()); @@ -1281,11 +1279,11 @@ public void cachePutObjectsShouldCallInternalCacheEndpointWhenProvided() throws } @Test - public void cachePutObjectsShouldUseApiKeyWhenProvided() throws MalformedURLException { + public void cachePutObjectsShouldUseApiKeyWhenProvided() { // given target = new CoreCacheService( httpClient, - new URL("http://cache-service/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), null, "http://cache-service-host/cache?uuid=", 100L, @@ -1328,7 +1326,7 @@ public void cacheBidsOpenrtbShouldPrependTraceInfoWhenEnabled() throws IOExcepti // given target = new CoreCacheService( httpClient, - new URL("http://cache-service/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), null, "http://cache-service-host/cache?uuid=", 100L, @@ -1361,7 +1359,7 @@ public void cacheBidsOpenrtbShouldPrependTraceInfoWhenEnabled() throws IOExcepti .build(); // when - final Future future = target.cacheBidsOpenrtb( + target.cacheBidsOpenrtb( asList(bidInfo1, bidInfo2), givenAuctionContext(), CacheContext.builder() @@ -1394,11 +1392,13 @@ public void cacheBidsOpenrtbShouldPrependTraceInfoWhenEnabled() throws IOExcepti } @Test - public void cacheBidsOpenrtbShouldPrependTraceInfoWithDatacenterWhenEnabled() throws IOException { + public void cacheBidsOpenrtbShouldPrependTraceInfoWithDatacenterWhenEnabled() + throws IOException { + // given target = new CoreCacheService( httpClient, - new URL("http://cache-service/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), null, "http://cache-service-host/cache?uuid=", 100L, @@ -1431,7 +1431,7 @@ public void cacheBidsOpenrtbShouldPrependTraceInfoWithDatacenterWhenEnabled() th .build(); // when - final Future future = target.cacheBidsOpenrtb( + target.cacheBidsOpenrtb( asList(bidInfo1, bidInfo2), givenAuctionContext(), CacheContext.builder() @@ -1468,7 +1468,7 @@ public void cacheBidsOpenrtbShouldNotPrependTraceInfoToLowEntoryCacheIds() throw // given target = new CoreCacheService( httpClient, - new URL("http://cache-service/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), null, "http://cache-service-host/cache?uuid=", 100L, @@ -1495,7 +1495,7 @@ public void cacheBidsOpenrtbShouldNotPrependTraceInfoToLowEntoryCacheIds() throw .build(); // when - final Future future = target.cacheBidsOpenrtb( + target.cacheBidsOpenrtb( singletonList(bidInfo), givenAuctionContext(), CacheContext.builder() @@ -1519,7 +1519,7 @@ public void cachePutObjectsShouldPrependTraceInfoWhenEnabled() throws IOExceptio // given target = new CoreCacheService( httpClient, - new URL("http://cache-service/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), null, "http://cache-service-host/cache?uuid=", 100L, @@ -1565,10 +1565,11 @@ public void cachePutObjectsShouldPrependTraceInfoWhenEnabled() throws IOExceptio @Test public void cachePutObjectsShouldPrependTraceInfoWithDatacenterWhenEnabled() throws IOException { + // given target = new CoreCacheService( httpClient, - new URL("http://cache-service/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), null, "http://cache-service-host/cache?uuid=", 100L, @@ -1617,7 +1618,7 @@ public void cachePutObjectsShouldNotPrependTraceInfoToPassedInKey() throws IOExc // given target = new CoreCacheService( httpClient, - new URL("http://cache-service/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), null, "http://cache-service-host/cache?uuid=", 100L, @@ -1754,14 +1755,13 @@ public void getCachedObjectShouldAddUuidQueryParamsBeforeSendingWhenChIsAbsent() } @Test - public void getCachedObjectShouldAddUuidQueryParamsToInternalBeforeSendingWhenChIsAbsent() - throws MalformedURLException { + public void getCachedObjectShouldAddUuidQueryParamsToInternalBeforeSendingWhenChIsAbsent() { // given target = new CoreCacheService( httpClient, - new URL("http://cache-service/cache"), - new URL("http://internal-cache-service/cache"), + HttpUtil.parseUrl("http://cache-service/cache"), + HttpUtil.parseUrl("http://internal-cache-service/cache"), "http://cache-service-host/cache?uuid=", 100L, "ApiKey", @@ -1793,11 +1793,6 @@ public void getCachedObjectShouldAddUuidQueryParamsToInternalBeforeSendingWhenCh @Test public void getCachedObjectShouldNotLogErrorMetricsWhenCacheIsNotReached() { // given - final HttpClientResponse response = HttpClientResponse.of( - 200, - MultiMap.caseInsensitiveMultiMap().add("Header", "Value"), - "body"); - given(httpClient.get(eq("http://cache-service/cache?uuid=key&ch=ch"), any(), anyLong())) .willReturn(Future.failedFuture(new TimeoutException("Timeout"))); diff --git a/src/test/java/org/prebid/server/it/AdagioTest.java b/src/test/java/org/prebid/server/it/AdagioTest.java index 01279362d4f..5c5aefa87f8 100644 --- a/src/test/java/org/prebid/server/it/AdagioTest.java +++ b/src/test/java/org/prebid/server/it/AdagioTest.java @@ -30,5 +30,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromAdagio() throws IOException, // then assertJsonEquals("openrtb2/adagio/test-auction-adagio-response.json", response, List.of("adagio")); } - } diff --git a/src/test/java/org/prebid/server/it/AdinifyTest.java b/src/test/java/org/prebid/server/it/AdinifyTest.java index 2b0234373b7..83071dc6ea0 100644 --- a/src/test/java/org/prebid/server/it/AdinifyTest.java +++ b/src/test/java/org/prebid/server/it/AdinifyTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,9 +19,6 @@ public class AdinifyTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromAdinify() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/adinify-exchange")) - .withQueryParam("host", equalTo("someUniquePartnerName")) - .withQueryParam("accountId", equalTo("someSeat")) - .withQueryParam("sourceId", equalTo("someToken")) .withRequestBody(equalToJson(jsonFrom("openrtb2/adinify/test-adinify-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/adinify/test-adinify-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/AdmaticDeTest.java b/src/test/java/org/prebid/server/it/AdmaticDeTest.java index 4963f138219..27d0277639a 100644 --- a/src/test/java/org/prebid/server/it/AdmaticDeTest.java +++ b/src/test/java/org/prebid/server/it/AdmaticDeTest.java @@ -9,7 +9,6 @@ import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class AdmaticDeTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromAdmaticDe() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/admaticde-exchange")) - .withQueryParam("host", equalTo("host")) .withRequestBody(equalToJson(jsonFrom("openrtb2/admaticde/test-admaticde-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/admaticde/test-admaticde-bid-response.json")))); @@ -32,5 +30,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromAdmaticDe() throws IOExcepti // then assertJsonEquals("openrtb2/admaticde/test-auction-admaticde-response.json", response, List.of("admaticde")); } - } diff --git a/src/test/java/org/prebid/server/it/AdmaticTest.java b/src/test/java/org/prebid/server/it/AdmaticTest.java index 4b2848942a6..08a70b0f096 100644 --- a/src/test/java/org/prebid/server/it/AdmaticTest.java +++ b/src/test/java/org/prebid/server/it/AdmaticTest.java @@ -9,7 +9,6 @@ import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class AdmaticTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromAdmatic() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/admatic-exchange")) - .withQueryParam("host", equalTo("host")) .withRequestBody(equalToJson(jsonFrom("openrtb2/admatic/test-admatic-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/admatic/test-admatic-bid-response.json")))); @@ -32,5 +30,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromAdmatic() throws IOException // then assertJsonEquals("openrtb2/admatic/test-auction-admatic-response.json", response, List.of("admatic")); } - } diff --git a/src/test/java/org/prebid/server/it/AdsyieldTest.java b/src/test/java/org/prebid/server/it/AdsyieldTest.java index 5f5b65eefba..adc80a3eafb 100644 --- a/src/test/java/org/prebid/server/it/AdsyieldTest.java +++ b/src/test/java/org/prebid/server/it/AdsyieldTest.java @@ -18,7 +18,7 @@ public class AdsyieldTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheAdsyieldBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/adsyield-exchange/test.host/123456")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/adsyield-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/adsyield/test-adsyield-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/AdtTest.java b/src/test/java/org/prebid/server/it/AdtTest.java index 43af3f37f7f..80a5079fbea 100644 --- a/src/test/java/org/prebid/server/it/AdtTest.java +++ b/src/test/java/org/prebid/server/it/AdtTest.java @@ -9,7 +9,6 @@ import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,18 +19,15 @@ public class AdtTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromadt() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/adt-exchange")) - .withQueryParam("host", equalTo("host")) .withRequestBody(equalToJson(jsonFrom("openrtb2/adt/test-adt-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/adt/test-adt-bid-response.json")))); // when final Response response = responseFor( "openrtb2/adt/test-auction-adt-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/adt/test-auction-adt-response.json", response, List.of("adt")); } - } diff --git a/src/test/java/org/prebid/server/it/AdtonosTest.java b/src/test/java/org/prebid/server/it/AdtonosTest.java index 389edc02a5e..ddb1f206307 100644 --- a/src/test/java/org/prebid/server/it/AdtonosTest.java +++ b/src/test/java/org/prebid/server/it/AdtonosTest.java @@ -18,7 +18,7 @@ public class AdtonosTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheAdtonosBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/adtonos-exchange/testPublisherId")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/adtonos-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/adtonos/test-adtonos-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/AdtrgtmeTest.java b/src/test/java/org/prebid/server/it/AdtrgtmeTest.java index 23be3e53347..daa5816bf20 100644 --- a/src/test/java/org/prebid/server/it/AdtrgtmeTest.java +++ b/src/test/java/org/prebid/server/it/AdtrgtmeTest.java @@ -33,5 +33,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromAdtrgtme() throws IOExceptio assertJsonEquals("openrtb2/adtrgtme/test-auction-adtrgtme-response.json", response, singletonList("adtrgtme")); } - } diff --git a/src/test/java/org/prebid/server/it/AduptechTest.java b/src/test/java/org/prebid/server/it/AduptechTest.java index 7db6a6c1217..35345d4d9f0 100644 --- a/src/test/java/org/prebid/server/it/AduptechTest.java +++ b/src/test/java/org/prebid/server/it/AduptechTest.java @@ -30,5 +30,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromAduptech() throws IOExceptio // then assertJsonEquals("openrtb2/aduptech/test-auction-aduptech-response.json", response, List.of("aduptech")); } - } diff --git a/src/test/java/org/prebid/server/it/AdverxoTest.java b/src/test/java/org/prebid/server/it/AdverxoTest.java index 30b2f3bc049..68bc668771f 100644 --- a/src/test/java/org/prebid/server/it/AdverxoTest.java +++ b/src/test/java/org/prebid/server/it/AdverxoTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,8 +19,6 @@ public class AdverxoTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromTheAdverxo() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/adverxo-exchange")) - .withQueryParam("adUnitId", equalTo("1")) - .withQueryParam("auth", equalTo("123456")) .withRequestBody(equalToJson(jsonFrom("openrtb2/adverxo/test-adverxo-bid-request.json"), true, true)) .willReturn(aResponse().withBody(jsonFrom("openrtb2/adverxo/test-adverxo-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/ApplicationTest.java b/src/test/java/org/prebid/server/it/ApplicationTest.java index 3a3710c6e6e..b986d7062ce 100644 --- a/src/test/java/org/prebid/server/it/ApplicationTest.java +++ b/src/test/java/org/prebid/server/it/ApplicationTest.java @@ -130,9 +130,7 @@ public void openrtb2MultiBidAuctionShouldRespondWithMoreThanOneBid() throws IOEx WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/genericAlias-exchange")) .withRequestBody(equalToJson( - jsonFrom( - "openrtb2/multi_bid/test-genericAlias-bid-request-1.json" - ))) + jsonFrom("openrtb2/multi_bid/test-genericAlias-bid-request-1.json"))) .willReturn(aResponse().withBody(jsonFrom( "openrtb2/multi_bid/test-genericAlias-bid-response-1.json")))); diff --git a/src/test/java/org/prebid/server/it/ArtechnologyTest.java b/src/test/java/org/prebid/server/it/ArtechnologyTest.java index 7c8ab50b034..21f6589f9f4 100644 --- a/src/test/java/org/prebid/server/it/ArtechnologyTest.java +++ b/src/test/java/org/prebid/server/it/ArtechnologyTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,9 +19,6 @@ public class ArtechnologyTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromArtechnology() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/artechnology-exchange")) - .withQueryParam("host", equalTo("someUniquePartnerName")) - .withQueryParam("accountId", equalTo("someSeat")) - .withQueryParam("sourceId", equalTo("someToken")) .withRequestBody(equalToJson(jsonFrom("openrtb2/artechnology/test-artechnology-bid-request.json"))) .willReturn(aResponse() .withBody(jsonFrom("openrtb2/artechnology/test-artechnology-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/AsoTest.java b/src/test/java/org/prebid/server/it/AsoTest.java index 2ca3dbbd4ae..a08406b9677 100644 --- a/src/test/java/org/prebid/server/it/AsoTest.java +++ b/src/test/java/org/prebid/server/it/AsoTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class AsoTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromAso() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/aso-exchange")) - .withQueryParam("zid", equalTo("1")) .withRequestBody(equalToJson( jsonFrom("openrtb2/aso/test-aso-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/BcmintTest.java b/src/test/java/org/prebid/server/it/BcmintTest.java index 7fbf7ef0a1e..dd9082ff6e4 100644 --- a/src/test/java/org/prebid/server/it/BcmintTest.java +++ b/src/test/java/org/prebid/server/it/BcmintTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class BcmintTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromBcmint() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/bcmint-exchange")) - .withQueryParam("zid", equalTo("1")) .withRequestBody(equalToJson( jsonFrom("openrtb2/bcmint/test-bcmint-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/BematterfullTest.java b/src/test/java/org/prebid/server/it/BematterfullTest.java index 0634f051bab..49c2a4deadc 100644 --- a/src/test/java/org/prebid/server/it/BematterfullTest.java +++ b/src/test/java/org/prebid/server/it/BematterfullTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,8 +19,6 @@ public class BematterfullTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromBematterfull() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/bematterfull-exchange")) - .withQueryParam("host", equalTo("testHost")) - .withQueryParam("pid", equalTo("testPid")) .withRequestBody(equalToJson( jsonFrom("openrtb2/bematterfull/test-bematterfull-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/BidAgencyTest.java b/src/test/java/org/prebid/server/it/BidAgencyTest.java index c888585ecc8..18acc48d730 100644 --- a/src/test/java/org/prebid/server/it/BidAgencyTest.java +++ b/src/test/java/org/prebid/server/it/BidAgencyTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class BidAgencyTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromBidAgency() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/bidagency-exchange")) - .withQueryParam("zid", equalTo("1")) .withRequestBody(equalToJson( jsonFrom("openrtb2/bidagency/test-bidagency-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/BidstackTest.java b/src/test/java/org/prebid/server/it/BidstackTest.java index 6554029963d..832ec946d29 100644 --- a/src/test/java/org/prebid/server/it/BidstackTest.java +++ b/src/test/java/org/prebid/server/it/BidstackTest.java @@ -30,5 +30,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromBidstack() throws IOExceptio assertJsonEquals("openrtb2/bidstack/test-auction-bidstack-response.json", response, singletonList("bidstack")); } - } diff --git a/src/test/java/org/prebid/server/it/BlastoTest.java b/src/test/java/org/prebid/server/it/BlastoTest.java index e26d75e6ca1..8cc2af3f8f4 100644 --- a/src/test/java/org/prebid/server/it/BlastoTest.java +++ b/src/test/java/org/prebid/server/it/BlastoTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,8 +19,6 @@ public class BlastoTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromBlasto() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/blasto-exchange")) - .withQueryParam("source", equalTo("sourceId")) - .withQueryParam("account", equalTo("accountId")) .withRequestBody(equalToJson(jsonFrom("openrtb2/blasto/test-blasto-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/blasto/test-blasto-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/CointrafficTest.java b/src/test/java/org/prebid/server/it/CointrafficTest.java index ea4a0bd717b..9da2dbe73fa 100644 --- a/src/test/java/org/prebid/server/it/CointrafficTest.java +++ b/src/test/java/org/prebid/server/it/CointrafficTest.java @@ -25,8 +25,7 @@ public void openrtb2AuctionShouldRespondWithBidsFromCointraffic() throws IOExcep // when final Response response = responseFor( "openrtb2/cointraffic/test-auction-cointraffic-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals( @@ -34,5 +33,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromCointraffic() throws IOExcep response, List.of("cointraffic")); } - } diff --git a/src/test/java/org/prebid/server/it/DisplayioTest.java b/src/test/java/org/prebid/server/it/DisplayioTest.java index 716faaa1268..1c60057ddff 100644 --- a/src/test/java/org/prebid/server/it/DisplayioTest.java +++ b/src/test/java/org/prebid/server/it/DisplayioTest.java @@ -9,7 +9,6 @@ import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,18 +19,15 @@ public class DisplayioTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromDisplayio() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/displayio-exchange")) - .withQueryParam("publisher", equalTo("publisherId")) .withRequestBody(equalToJson(jsonFrom("openrtb2/displayio/test-displayio-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/displayio/test-displayio-bid-response.json")))); // when final Response response = responseFor( "openrtb2/displayio/test-auction-displayio-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/displayio/test-auction-displayio-response.json", response, List.of("displayio")); } - } diff --git a/src/test/java/org/prebid/server/it/DriftpixelTest.java b/src/test/java/org/prebid/server/it/DriftpixelTest.java index 9285c87ce92..0f113f32533 100644 --- a/src/test/java/org/prebid/server/it/DriftpixelTest.java +++ b/src/test/java/org/prebid/server/it/DriftpixelTest.java @@ -9,7 +9,6 @@ import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,19 +19,15 @@ public class DriftpixelTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromDriftpixel() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/driftpixel-exchange")) - .withQueryParam("env", equalTo("env")) - .withQueryParam("pid", equalTo("pid")) .withRequestBody(equalToJson(jsonFrom("openrtb2/driftpixel/test-driftpixel-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/driftpixel/test-driftpixel-bid-response.json")))); // when final Response response = responseFor( "openrtb2/driftpixel/test-auction-driftpixel-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/driftpixel/test-auction-driftpixel-response.json", response, List.of("driftpixel")); } - } diff --git a/src/test/java/org/prebid/server/it/Edge226Test.java b/src/test/java/org/prebid/server/it/Edge226Test.java index e685b96d9be..864dde627a1 100644 --- a/src/test/java/org/prebid/server/it/Edge226Test.java +++ b/src/test/java/org/prebid/server/it/Edge226Test.java @@ -25,11 +25,9 @@ public void openrtb2AuctionShouldRespondWithBidsFromEdge226() throws IOException // when final Response response = responseFor( "openrtb2/edge226/test-auction-edge226-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/edge226/test-auction-edge226-response.json", response, List.of("edge226")); } - } diff --git a/src/test/java/org/prebid/server/it/EmbimediaTest.java b/src/test/java/org/prebid/server/it/EmbimediaTest.java index 0d6f76e110a..59afb6dc056 100644 --- a/src/test/java/org/prebid/server/it/EmbimediaTest.java +++ b/src/test/java/org/prebid/server/it/EmbimediaTest.java @@ -18,7 +18,7 @@ public class EmbimediaTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheEmbimediaBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/embimedia-exchange/test.host/123456")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/embimedia-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/embimedia/test-embimedia-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/EplanningTest.java b/src/test/java/org/prebid/server/it/EplanningTest.java index d8e95e45b2f..9b42ddc8637 100644 --- a/src/test/java/org/prebid/server/it/EplanningTest.java +++ b/src/test/java/org/prebid/server/it/EplanningTest.java @@ -17,7 +17,7 @@ public class EplanningTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromEplanning() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(get(urlPathEqualTo("/eplanning-exchange/12345/1/www.example.com/ROS")) + WIRE_MOCK_RULE.stubFor(get(urlPathEqualTo("/eplanning-exchange")) .willReturn(aResponse().withBody(jsonFrom("openrtb2/eplanning/test-eplanning-bid-response.json")))); // when diff --git a/src/test/java/org/prebid/server/it/EquativTest.java b/src/test/java/org/prebid/server/it/EquativTest.java index e3464330edd..5120be07117 100644 --- a/src/test/java/org/prebid/server/it/EquativTest.java +++ b/src/test/java/org/prebid/server/it/EquativTest.java @@ -18,7 +18,7 @@ public class EquativTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromEquativ() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/smartadserver-exchange/api/bid")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/smartadserver-exchange")) .withRequestBody( equalToJson(jsonFrom("openrtb2/equativ/test-equativ-bid-request.json"))) .willReturn(aResponse() diff --git a/src/test/java/org/prebid/server/it/EscalaxTest.java b/src/test/java/org/prebid/server/it/EscalaxTest.java index 30831d991e5..f64f9d975ba 100644 --- a/src/test/java/org/prebid/server/it/EscalaxTest.java +++ b/src/test/java/org/prebid/server/it/EscalaxTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,8 +19,6 @@ public class EscalaxTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromEscalax() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/escalax-exchange")) - .withQueryParam("k", equalTo("testAccountId")) - .withQueryParam("name", equalTo("testSourceId")) .withRequestBody(equalToJson(jsonFrom("openrtb2/escalax/test-escalax-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/escalax/test-escalax-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/FelixadsTest.java b/src/test/java/org/prebid/server/it/FelixadsTest.java index 30e90dd0ba5..1b69eea6888 100644 --- a/src/test/java/org/prebid/server/it/FelixadsTest.java +++ b/src/test/java/org/prebid/server/it/FelixadsTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,9 +19,6 @@ public class FelixadsTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromFelixads() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/felixads-exchange")) - .withQueryParam("host", equalTo("someUniquePartnerName")) - .withQueryParam("accountId", equalTo("someSeat")) - .withQueryParam("sourceId", equalTo("someToken")) .withRequestBody(equalToJson(jsonFrom("openrtb2/felixads/test-felixads-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/felixads/test-felixads-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/FilmzieTest.java b/src/test/java/org/prebid/server/it/FilmzieTest.java index fefbffb6e74..82ff99a86d5 100644 --- a/src/test/java/org/prebid/server/it/FilmzieTest.java +++ b/src/test/java/org/prebid/server/it/FilmzieTest.java @@ -18,7 +18,7 @@ public class FilmzieTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheFilmzieBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/filmzie-exchange/test.host/123456")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/filmzie-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/filmzie/test-filmzie-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/FinativeTest.java b/src/test/java/org/prebid/server/it/FinativeTest.java index dd1afd93547..974fa706554 100644 --- a/src/test/java/org/prebid/server/it/FinativeTest.java +++ b/src/test/java/org/prebid/server/it/FinativeTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class FinativeTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromFinative() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/finative-exchange")) - .withQueryParam("ssp", equalTo("pbs")) .withRequestBody(equalToJson( jsonFrom("openrtb2/finative/test-finative-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/GothamAdsTest.java b/src/test/java/org/prebid/server/it/GothamAdsTest.java index d6a0cde8428..34899f38a66 100644 --- a/src/test/java/org/prebid/server/it/GothamAdsTest.java +++ b/src/test/java/org/prebid/server/it/GothamAdsTest.java @@ -25,11 +25,9 @@ public void openrtb2AuctionShouldRespondWithBidsFromGothamAds() throws IOExcepti // when final Response response = responseFor( "openrtb2/gothamads/test-auction-gothamads-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/gothamads/test-auction-gothamads-response.json", response, List.of("gothamads")); } - } diff --git a/src/test/java/org/prebid/server/it/GreedyGameTest.java b/src/test/java/org/prebid/server/it/GreedyGameTest.java index b6dc46362fd..bb6779dea76 100644 --- a/src/test/java/org/prebid/server/it/GreedyGameTest.java +++ b/src/test/java/org/prebid/server/it/GreedyGameTest.java @@ -18,7 +18,7 @@ public class GreedyGameTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheGreedyGameBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/greedygame-exchange/test.host/123456")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/greedygame-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/greedygame/test-greedygame-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/HuaweiAdsTest.java b/src/test/java/org/prebid/server/it/HuaweiAdsTest.java index f28d319ceb3..6e19912a7a9 100644 --- a/src/test/java/org/prebid/server/it/HuaweiAdsTest.java +++ b/src/test/java/org/prebid/server/it/HuaweiAdsTest.java @@ -483,5 +483,4 @@ public void testOpenrtb2AuctionVideo() throws IOException, JSONException { // then assertJsonEquals("openrtb2/huaweiads/simple_video/" + AUCTION_RESPONSE, response, List.of("huaweiads")); } - } diff --git a/src/test/java/org/prebid/server/it/IionadsTest.java b/src/test/java/org/prebid/server/it/IionadsTest.java index 8df69d51148..69cda412c39 100644 --- a/src/test/java/org/prebid/server/it/IionadsTest.java +++ b/src/test/java/org/prebid/server/it/IionadsTest.java @@ -18,7 +18,7 @@ public class IionadsTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheiionadsBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/iionads-exchange/test.host/123456")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/iionads-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/iionads/test-iionads-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/InsticatorTest.java b/src/test/java/org/prebid/server/it/InsticatorTest.java index 4a96954e5c5..0ea723f451f 100644 --- a/src/test/java/org/prebid/server/it/InsticatorTest.java +++ b/src/test/java/org/prebid/server/it/InsticatorTest.java @@ -32,5 +32,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromInsticator() throws IOExcept response, singletonList("insticator")); } - } diff --git a/src/test/java/org/prebid/server/it/IntegrationTest.java b/src/test/java/org/prebid/server/it/IntegrationTest.java index 7b8d42e0dc0..6b9c6dbe83f 100644 --- a/src/test/java/org/prebid/server/it/IntegrationTest.java +++ b/src/test/java/org/prebid/server/it/IntegrationTest.java @@ -12,7 +12,6 @@ import io.restassured.internal.mapping.Jackson2Mapper; import io.restassured.response.Response; import io.restassured.specification.RequestSpecification; -import lombok.Value; import org.apache.commons.lang3.StringUtils; import org.json.JSONException; import org.junit.jupiter.api.AfterEach; @@ -303,15 +302,4 @@ public boolean applyGlobally() { return false; } } - - @Value(staticConstructor = "of") - static class BidRequestExecutionParameters { - String dealId; - - String body; - - Integer status; - - Long delay; - } } diff --git a/src/test/java/org/prebid/server/it/IntenzeTest.java b/src/test/java/org/prebid/server/it/IntenzeTest.java index bd662312fae..6f8252572a8 100644 --- a/src/test/java/org/prebid/server/it/IntenzeTest.java +++ b/src/test/java/org/prebid/server/it/IntenzeTest.java @@ -25,11 +25,9 @@ public void openrtb2AuctionShouldRespondWithBidsFromIntenze() throws IOException // when final Response response = responseFor( "openrtb2/intenze/test-auction-intenze-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/intenze/test-auction-intenze-response.json", response, List.of("intenze")); } - } diff --git a/src/test/java/org/prebid/server/it/IqzoneTest.java b/src/test/java/org/prebid/server/it/IqzoneTest.java index f7671ee893e..ff339b6e8e2 100644 --- a/src/test/java/org/prebid/server/it/IqzoneTest.java +++ b/src/test/java/org/prebid/server/it/IqzoneTest.java @@ -29,5 +29,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromIqzone() throws IOException, // then assertJsonEquals("openrtb2/iqzone/test-auction-iqzone-response.json", response, singletonList("iqzone")); } - } diff --git a/src/test/java/org/prebid/server/it/JambojarTest.java b/src/test/java/org/prebid/server/it/JambojarTest.java index e96972bb5b7..4c030f11f9e 100644 --- a/src/test/java/org/prebid/server/it/JambojarTest.java +++ b/src/test/java/org/prebid/server/it/JambojarTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,9 +19,6 @@ public class JambojarTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromJambojar() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/jambojar-exchange")) - .withQueryParam("host", equalTo("someUniquePartnerName")) - .withQueryParam("accountId", equalTo("someSeat")) - .withQueryParam("sourceId", equalTo("someToken")) .withRequestBody(equalToJson(jsonFrom("openrtb2/jambojar/test-jambojar-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/jambojar/test-jambojar-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/JdpMediaTest.java b/src/test/java/org/prebid/server/it/JdpMediaTest.java index edecf8e22e6..2cdf4d91c6c 100644 --- a/src/test/java/org/prebid/server/it/JdpMediaTest.java +++ b/src/test/java/org/prebid/server/it/JdpMediaTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,9 +19,6 @@ public class JdpMediaTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromJdpMedia() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/jdpmedia-exchange")) - .withQueryParam("host", equalTo("someUniquePartnerName")) - .withQueryParam("accountId", equalTo("someSeat")) - .withQueryParam("sourceId", equalTo("someToken")) .withRequestBody(equalToJson(jsonFrom("openrtb2/jdpmedia/test-jdpmedia-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/jdpmedia/test-jdpmedia-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/KuantyxTest.java b/src/test/java/org/prebid/server/it/KuantyxTest.java index 853feb95345..9cdb2deef52 100644 --- a/src/test/java/org/prebid/server/it/KuantyxTest.java +++ b/src/test/java/org/prebid/server/it/KuantyxTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class KuantyxTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromKuantyx() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/kuantyx-exchange")) - .withQueryParam("zid", equalTo("1")) .withRequestBody(equalToJson( jsonFrom("openrtb2/kuantyx/test-kuantyx-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/LemmaDigitalTest.java b/src/test/java/org/prebid/server/it/LemmaDigitalTest.java index 1016b475b23..63f2d685ed2 100644 --- a/src/test/java/org/prebid/server/it/LemmaDigitalTest.java +++ b/src/test/java/org/prebid/server/it/LemmaDigitalTest.java @@ -18,7 +18,7 @@ public class LemmaDigitalTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheLemmaDigitalBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/lemmadigital-exchange/123/312")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/lemmadigital-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/lemmaDigital/test-lemmaDigital-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/LimeLightDigitalTest.java b/src/test/java/org/prebid/server/it/LimeLightDigitalTest.java index 882ae4b94ef..d1bb1fbf3e7 100644 --- a/src/test/java/org/prebid/server/it/LimeLightDigitalTest.java +++ b/src/test/java/org/prebid/server/it/LimeLightDigitalTest.java @@ -18,7 +18,7 @@ public class LimeLightDigitalTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheLimeLightDigitalBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/limelightDigital-exchange/test.host/123456")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/limelightDigital-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/limelightDigital/test-limelightDigital-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/LmKiviAdsTest.java b/src/test/java/org/prebid/server/it/LmKiviAdsTest.java index 12d97974193..61760f38f20 100644 --- a/src/test/java/org/prebid/server/it/LmKiviAdsTest.java +++ b/src/test/java/org/prebid/server/it/LmKiviAdsTest.java @@ -18,7 +18,7 @@ public class LmKiviAdsTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheLmKiviAdsBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/lm-kiviads-exchange/test2/test1")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/lm-kiviads-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/lmkiviads/test-lmkiviads-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/MarkappTest.java b/src/test/java/org/prebid/server/it/MarkappTest.java index 077009a306f..95ac4de211b 100644 --- a/src/test/java/org/prebid/server/it/MarkappTest.java +++ b/src/test/java/org/prebid/server/it/MarkappTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,9 +19,6 @@ public class MarkappTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromMarkapp() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/markapp-exchange")) - .withQueryParam("host", equalTo("someUniquePartnerName")) - .withQueryParam("accountId", equalTo("someSeat")) - .withQueryParam("sourceId", equalTo("someToken")) .withRequestBody(equalToJson(jsonFrom("openrtb2/markapp/test-markapp-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/markapp/test-markapp-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/MarsmediaTest.java b/src/test/java/org/prebid/server/it/MarsmediaTest.java index 54d4c555fc7..76aca18cab7 100644 --- a/src/test/java/org/prebid/server/it/MarsmediaTest.java +++ b/src/test/java/org/prebid/server/it/MarsmediaTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,8 +19,6 @@ public class MarsmediaTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromMarsmedia() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/marsmedia-exchange")) - .withQueryParam("param", equalTo("testParam")) - .withQueryParam("zone", equalTo("999")) .withRequestBody(equalToJson(jsonFrom("openrtb2/marsmedia/test-marsmedia-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/marsmedia/test-marsmedia-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/MediaGoTest.java b/src/test/java/org/prebid/server/it/MediaGoTest.java index c0598c8e3d7..035d3f5e26c 100644 --- a/src/test/java/org/prebid/server/it/MediaGoTest.java +++ b/src/test/java/org/prebid/server/it/MediaGoTest.java @@ -9,7 +9,6 @@ import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,19 +19,15 @@ public class MediaGoTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromMediago() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/mediago-exchange")) - .withQueryParam("token", equalTo("request_token")) - .withQueryParam("region", equalTo("jp")) .withRequestBody(equalToJson(jsonFrom("openrtb2/mediago/test-mediago-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/mediago/test-mediago-bid-response.json")))); // when final Response response = responseFor( "openrtb2/mediago/test-auction-mediago-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/mediago/test-auction-mediago-response.json", response, List.of("mediago")); } - } diff --git a/src/test/java/org/prebid/server/it/MediasquareTest.java b/src/test/java/org/prebid/server/it/MediasquareTest.java index f246637921d..957fb4889fa 100644 --- a/src/test/java/org/prebid/server/it/MediasquareTest.java +++ b/src/test/java/org/prebid/server/it/MediasquareTest.java @@ -33,5 +33,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromMediasquare() throws IOExcep response, List.of("mediasquare")); } - } diff --git a/src/test/java/org/prebid/server/it/MeloZenTest.java b/src/test/java/org/prebid/server/it/MeloZenTest.java index 185aa894a2f..626c840930d 100644 --- a/src/test/java/org/prebid/server/it/MeloZenTest.java +++ b/src/test/java/org/prebid/server/it/MeloZenTest.java @@ -9,7 +9,6 @@ import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,18 +19,15 @@ public class MeloZenTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromMelozen() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/melozen-exchange")) - .withQueryParam("pubId", equalTo("publisherId")) .withRequestBody(equalToJson(jsonFrom("openrtb2/melozen/test-melozen-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/melozen/test-melozen-bid-response.json")))); // when final Response response = responseFor( "openrtb2/melozen/test-auction-melozen-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/melozen/test-auction-melozen-response.json", response, List.of("melozen")); } - } diff --git a/src/test/java/org/prebid/server/it/MetaxTest.java b/src/test/java/org/prebid/server/it/MetaxTest.java index f51a55e55c2..acdc3e62813 100644 --- a/src/test/java/org/prebid/server/it/MetaxTest.java +++ b/src/test/java/org/prebid/server/it/MetaxTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,8 +19,6 @@ public class MetaxTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromMetax() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/metax-exchange")) - .withQueryParam("publisher_id", equalTo("123")) - .withQueryParam("adunit", equalTo("456")) .withRequestBody(equalToJson(jsonFrom("openrtb2/metax/test-metax-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/metax/test-metax-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/MinuteMediaTest.java b/src/test/java/org/prebid/server/it/MinuteMediaTest.java index 2f8c591dc08..5bbb4816613 100644 --- a/src/test/java/org/prebid/server/it/MinuteMediaTest.java +++ b/src/test/java/org/prebid/server/it/MinuteMediaTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class MinuteMediaTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromMinuteMedia() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/minutemedia-exchange")) - .withQueryParam("publisherId", equalTo("123")) .withRequestBody(equalToJson(jsonFrom("openrtb2/minutemedia/test-minutemedia-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/minutemedia/test-minutemedia-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/MobkoiTest.java b/src/test/java/org/prebid/server/it/MobkoiTest.java index 1246f6d82f2..fb08125c2bf 100644 --- a/src/test/java/org/prebid/server/it/MobkoiTest.java +++ b/src/test/java/org/prebid/server/it/MobkoiTest.java @@ -25,8 +25,7 @@ public void openrtb2AuctionShouldRespondWithBidsFromMobkoi() throws IOException, // when final Response response = responseFor( "openrtb2/mobkoi/test-auction-mobkoi-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/mobkoi/test-auction-mobkoi-response.json", response, singletonList("mobkoi")); diff --git a/src/test/java/org/prebid/server/it/MonetixAdsTest.java b/src/test/java/org/prebid/server/it/MonetixAdsTest.java index 8ada0c373bf..76d06e3bedd 100644 --- a/src/test/java/org/prebid/server/it/MonetixAdsTest.java +++ b/src/test/java/org/prebid/server/it/MonetixAdsTest.java @@ -9,7 +9,6 @@ import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class MonetixAdsTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromMonetixAds() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/monetixads-exchange")) - .withQueryParam("host", equalTo("host")) .withRequestBody(equalToJson(jsonFrom("openrtb2/monetixads/test-monetixads-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/monetixads/test-monetixads-bid-response.json")))); @@ -32,5 +30,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromMonetixAds() throws IOExcept // then assertJsonEquals("openrtb2/monetixads/test-auction-monetixads-response.json", response, List.of("monetixads")); } - } diff --git a/src/test/java/org/prebid/server/it/MotorikTest.java b/src/test/java/org/prebid/server/it/MotorikTest.java index 73785cee7b8..8be27d80437 100644 --- a/src/test/java/org/prebid/server/it/MotorikTest.java +++ b/src/test/java/org/prebid/server/it/MotorikTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,8 +19,6 @@ public class MotorikTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromMotorik() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/motorik-exchange")) - .withQueryParam("k", equalTo("testAccountId")) - .withQueryParam("name", equalTo("testPlacementId")) .withRequestBody(equalToJson(jsonFrom("openrtb2/motorik/test-motorik-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/motorik/test-motorik-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/NetAddictionTest.java b/src/test/java/org/prebid/server/it/NetAddictionTest.java index d9f1a815820..b5b106189df 100644 --- a/src/test/java/org/prebid/server/it/NetAddictionTest.java +++ b/src/test/java/org/prebid/server/it/NetAddictionTest.java @@ -9,7 +9,6 @@ import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class NetAddictionTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromNetaddiction() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/netaddiction-exchange")) - .withQueryParam("host", equalTo("host")) .withRequestBody(equalToJson( jsonFrom("openrtb2/netaddiction/test-netaddiction-bid-request.json"))) .willReturn(aResponse().withBody( @@ -37,5 +35,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromNetaddiction() throws IOExce response, List.of("netaddiction")); } - } diff --git a/src/test/java/org/prebid/server/it/OmnidexTest.java b/src/test/java/org/prebid/server/it/OmnidexTest.java index 8280a8f7e91..87d91db8123 100644 --- a/src/test/java/org/prebid/server/it/OmnidexTest.java +++ b/src/test/java/org/prebid/server/it/OmnidexTest.java @@ -25,11 +25,9 @@ public void openrtb2AuctionShouldRespondWithBidsFromOmnidex() throws IOException // when final Response response = responseFor( "openrtb2/omnidex/test-auction-omnidex-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/omnidex/test-auction-omnidex-response.json", response, List.of("omnidex")); } - } diff --git a/src/test/java/org/prebid/server/it/OwnAdxTest.java b/src/test/java/org/prebid/server/it/OwnAdxTest.java index 70c4d6e7686..f84db923933 100644 --- a/src/test/java/org/prebid/server/it/OwnAdxTest.java +++ b/src/test/java/org/prebid/server/it/OwnAdxTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -19,8 +18,7 @@ public class OwnAdxTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromOwnAdx() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/ownadx-exchange/bid/testSeatId/testSspId")) - .withQueryParam("token", equalTo("testTokenId")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/ownadx-exchange")) .withRequestBody(equalToJson(jsonFrom("openrtb2/ownadx/test-ownadx-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/ownadx/test-ownadx-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/PgamSspTest.java b/src/test/java/org/prebid/server/it/PgamSspTest.java index 6a574f5a6ed..845e209be29 100644 --- a/src/test/java/org/prebid/server/it/PgamSspTest.java +++ b/src/test/java/org/prebid/server/it/PgamSspTest.java @@ -25,11 +25,9 @@ public void openrtb2AuctionShouldRespondWithBidsFromPgamSsp() throws IOException // when final Response response = responseFor( "openrtb2/pgamssp/test-auction-pgamssp-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/pgamssp/test-auction-pgamssp-response.json", response, List.of("pgamssp")); } - } diff --git a/src/test/java/org/prebid/server/it/PixadTest.java b/src/test/java/org/prebid/server/it/PixadTest.java index a15c2013d00..bd68e87de8d 100644 --- a/src/test/java/org/prebid/server/it/PixadTest.java +++ b/src/test/java/org/prebid/server/it/PixadTest.java @@ -9,7 +9,6 @@ import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class PixadTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFrompixad() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/pixad-exchange")) - .withQueryParam("host", equalTo("host")) .withRequestBody(equalToJson(jsonFrom("openrtb2/pixad/test-pixad-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/pixad/test-pixad-bid-response.json")))); @@ -32,5 +30,4 @@ public void openrtb2AuctionShouldRespondWithBidsFrompixad() throws IOException, // then assertJsonEquals("openrtb2/pixad/test-auction-pixad-response.json", response, List.of("pixad")); } - } diff --git a/src/test/java/org/prebid/server/it/PrecisoTest.java b/src/test/java/org/prebid/server/it/PrecisoTest.java index da461016e64..3bcba9a210f 100644 --- a/src/test/java/org/prebid/server/it/PrecisoTest.java +++ b/src/test/java/org/prebid/server/it/PrecisoTest.java @@ -31,5 +31,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromPreciso() throws IOException // then assertJsonEquals("openrtb2/preciso/test-auction-preciso-response.json", response, singletonList("preciso")); } - } diff --git a/src/test/java/org/prebid/server/it/ProgxTest.java b/src/test/java/org/prebid/server/it/ProgxTest.java index c84a146ba7d..5d3b0cf3b52 100644 --- a/src/test/java/org/prebid/server/it/ProgxTest.java +++ b/src/test/java/org/prebid/server/it/ProgxTest.java @@ -25,11 +25,9 @@ public void openrtb2AuctionShouldRespondWithBidsFromProgx() throws IOException, // when final Response response = responseFor( "openrtb2/progx/test-auction-progx-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/progx/test-auction-progx-response.json", response, List.of("progx")); } - } diff --git a/src/test/java/org/prebid/server/it/RadianfusionTest.java b/src/test/java/org/prebid/server/it/RadianfusionTest.java index 52b401de7b3..d38369431e3 100644 --- a/src/test/java/org/prebid/server/it/RadianfusionTest.java +++ b/src/test/java/org/prebid/server/it/RadianfusionTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,9 +19,6 @@ public class RadianfusionTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromRadianfusion() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/radianfusion-exchange")) - .withQueryParam("host", equalTo("someUniquePartnerName")) - .withQueryParam("accountId", equalTo("someSeat")) - .withQueryParam("sourceId", equalTo("someToken")) .withRequestBody(equalToJson(jsonFrom("openrtb2/radianfusion/test-radianfusion-bid-request.json"))) .willReturn(aResponse().withBody( jsonFrom("openrtb2/radianfusion/test-radianfusion-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/RelevantDigitalTest.java b/src/test/java/org/prebid/server/it/RelevantDigitalTest.java index 0d46c9e0a41..f71ac85e659 100644 --- a/src/test/java/org/prebid/server/it/RelevantDigitalTest.java +++ b/src/test/java/org/prebid/server/it/RelevantDigitalTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class RelevantDigitalTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromRelevantDigital() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/relevantdigital-exchange")) - .withQueryParam("pbsHost", equalTo("testHost")) .withRequestBody( equalToJson(jsonFrom("openrtb2/relevantdigital/test-relevantdigital-bid-request.json"))) .willReturn(aResponse() diff --git a/src/test/java/org/prebid/server/it/RoulaxTest.java b/src/test/java/org/prebid/server/it/RoulaxTest.java index ded8416d107..e01a195fee6 100644 --- a/src/test/java/org/prebid/server/it/RoulaxTest.java +++ b/src/test/java/org/prebid/server/it/RoulaxTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -19,8 +18,7 @@ public class RoulaxTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheRoulaxBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/roulax-exchange/testPublisherPath")) - .withQueryParam("pid", equalTo("testPid")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/roulax-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/roulax/test-roulax-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/ScreencoreTest.java b/src/test/java/org/prebid/server/it/ScreencoreTest.java index f059b6b3ed2..4a385ce079d 100644 --- a/src/test/java/org/prebid/server/it/ScreencoreTest.java +++ b/src/test/java/org/prebid/server/it/ScreencoreTest.java @@ -25,11 +25,9 @@ public void openrtb2AuctionShouldRespondWithBidsFromScreencore() throws IOExcept // when final Response response = responseFor( "openrtb2/screencore/test-auction-screencore-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/screencore/test-auction-screencore-response.json", response, List.of("screencore")); } - } diff --git a/src/test/java/org/prebid/server/it/SeedingAllianceTest.java b/src/test/java/org/prebid/server/it/SeedingAllianceTest.java index 0dd5a75dbfb..e8e01847faa 100644 --- a/src/test/java/org/prebid/server/it/SeedingAllianceTest.java +++ b/src/test/java/org/prebid/server/it/SeedingAllianceTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class SeedingAllianceTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromSeedingAlliance() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/seedingAlliance-exchange")) - .withQueryParam("ssp", equalTo("accountId")) .withRequestBody(equalToJson( jsonFrom("openrtb2/seedingAlliance/test-seedingAlliance-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/SmartadserverTest.java b/src/test/java/org/prebid/server/it/SmartadserverTest.java index 296883918e8..4b006082722 100644 --- a/src/test/java/org/prebid/server/it/SmartadserverTest.java +++ b/src/test/java/org/prebid/server/it/SmartadserverTest.java @@ -18,7 +18,7 @@ public class SmartadserverTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromSmartadserver() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/smartadserver-secondary-exchange/ortb")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/smartadserver-pg-exchange")) .withRequestBody(equalToJson(jsonFrom("openrtb2/smartadserver/test-smartadserver-bid-request.json"))) .willReturn(aResponse() .withBody(jsonFrom("openrtb2/smartadserver/test-smartadserver-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/SmarthubTest.java b/src/test/java/org/prebid/server/it/SmarthubTest.java index 97bef6278f8..bf0a91649ef 100644 --- a/src/test/java/org/prebid/server/it/SmarthubTest.java +++ b/src/test/java/org/prebid/server/it/SmarthubTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,9 +19,6 @@ public class SmarthubTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromSmarthub() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/smarthub-exchange")) - .withQueryParam("host", equalTo("someUniquePartnerName")) - .withQueryParam("accountId", equalTo("someSeat")) - .withQueryParam("sourceId", equalTo("someToken")) .withRequestBody(equalToJson(jsonFrom("openrtb2/smarthub/test-smarthub-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/smarthub/test-smarthub-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/SmileWantedTest.java b/src/test/java/org/prebid/server/it/SmileWantedTest.java index f4d24e0de28..172d2063711 100644 --- a/src/test/java/org/prebid/server/it/SmileWantedTest.java +++ b/src/test/java/org/prebid/server/it/SmileWantedTest.java @@ -18,7 +18,7 @@ public class SmileWantedTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromSmileWanted() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/smilewanted-exchange/java/someZoneId")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/smilewanted-exchange")) .withRequestBody(equalToJson(jsonFrom("openrtb2/smilewanted/test-smilewanted-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom( "openrtb2/smilewanted/test-smilewanted-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/SmrtconnectTest.java b/src/test/java/org/prebid/server/it/SmrtconnectTest.java index 3fa46ad8be2..8f225cb8f58 100644 --- a/src/test/java/org/prebid/server/it/SmrtconnectTest.java +++ b/src/test/java/org/prebid/server/it/SmrtconnectTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class SmrtconnectTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromTheSmrtconnect() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/smrtconnect-exchange")) - .withQueryParam("supply_id", equalTo("1")) .withRequestBody(equalToJson(jsonFrom("openrtb2/smrtconnect/test-smrtconnect-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/smrtconnect/test-smrtconnect-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/StreamlynTest.java b/src/test/java/org/prebid/server/it/StreamlynTest.java index b482c4d2192..230cae2f146 100644 --- a/src/test/java/org/prebid/server/it/StreamlynTest.java +++ b/src/test/java/org/prebid/server/it/StreamlynTest.java @@ -18,7 +18,7 @@ public class StreamlynTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheStreamlynBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/streamlyn-exchange/test.host/123456")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/streamlyn-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/streamlyn/test-streamlyn-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/StreamvisionTest.java b/src/test/java/org/prebid/server/it/StreamvisionTest.java index ec85af20996..443dda3838c 100644 --- a/src/test/java/org/prebid/server/it/StreamvisionTest.java +++ b/src/test/java/org/prebid/server/it/StreamvisionTest.java @@ -18,7 +18,7 @@ public class StreamvisionTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheStreamvisionBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/streamvision-exchange/test.host/123456")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/streamvision-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/streamvision/test-streamvision-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/SuntContentTest.java b/src/test/java/org/prebid/server/it/SuntContentTest.java index b36584690d8..8e2af9547ff 100644 --- a/src/test/java/org/prebid/server/it/SuntContentTest.java +++ b/src/test/java/org/prebid/server/it/SuntContentTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class SuntContentTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromSuntContent() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/suntContent-exchange")) - .withQueryParam("ssp", equalTo("pbs")) .withRequestBody(equalToJson( jsonFrom("openrtb2/suntContent/test-suntContent-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/TagorasTest.java b/src/test/java/org/prebid/server/it/TagorasTest.java index 70daa9f10fe..2e9acdde5a4 100644 --- a/src/test/java/org/prebid/server/it/TagorasTest.java +++ b/src/test/java/org/prebid/server/it/TagorasTest.java @@ -25,11 +25,9 @@ public void openrtb2AuctionShouldRespondWithBidsFromTagoras() throws IOException // when final Response response = responseFor( "openrtb2/tagoras/test-auction-tagoras-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/tagoras/test-auction-tagoras-response.json", response, List.of("tagoras")); } - } diff --git a/src/test/java/org/prebid/server/it/TappxTest.java b/src/test/java/org/prebid/server/it/TappxTest.java index 17ab6f1fa17..e118a18baff 100644 --- a/src/test/java/org/prebid/server/it/TappxTest.java +++ b/src/test/java/org/prebid/server/it/TappxTest.java @@ -18,7 +18,7 @@ public class TappxTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTappx() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/tappx-exchange/rtb/v2/test")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/tappx-exchange")) .withRequestBody(equalToJson(jsonFrom("openrtb2/tappx/test-tappx-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/tappx/test-tappx-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/TeadsTest.java b/src/test/java/org/prebid/server/it/TeadsTest.java index 405bf361bac..716edd5411a 100644 --- a/src/test/java/org/prebid/server/it/TeadsTest.java +++ b/src/test/java/org/prebid/server/it/TeadsTest.java @@ -25,11 +25,9 @@ public void openrtb2AuctionShouldRespondWithBidsFromTeads() throws IOException, // when final Response response = responseFor( "openrtb2/teads/test-auction-teads-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/teads/test-auction-teads-response.json", response, List.of("teads")); } - } diff --git a/src/test/java/org/prebid/server/it/TgmTest.java b/src/test/java/org/prebid/server/it/TgmTest.java index e94e25abe08..e623225ddc4 100644 --- a/src/test/java/org/prebid/server/it/TgmTest.java +++ b/src/test/java/org/prebid/server/it/TgmTest.java @@ -18,7 +18,7 @@ public class TgmTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheTgmBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/tgm-exchange/test.host/123456")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/tgm-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/tgm/test-tgm-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/TheTradeDeskTest.java b/src/test/java/org/prebid/server/it/TheTradeDeskTest.java index f2ea877239f..451513afee6 100644 --- a/src/test/java/org/prebid/server/it/TheTradeDeskTest.java +++ b/src/test/java/org/prebid/server/it/TheTradeDeskTest.java @@ -18,7 +18,7 @@ public class TheTradeDeskTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheTradeDesk() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/thetradedesk-exchange/somesupplyid")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/thetradedesk-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/thetradedesk/test-thetradedesk-bid-request.json"))) .willReturn(aResponse().withBody( @@ -27,8 +27,7 @@ public void openrtb2AuctionShouldRespondWithBidsFromTheTradeDesk() throws IOExce // when final Response response = responseFor( "openrtb2/thetradedesk/test-auction-thetradedesk-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals( @@ -36,5 +35,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromTheTradeDesk() throws IOExce response, List.of("thetradedesk")); } - } diff --git a/src/test/java/org/prebid/server/it/TradPlusTest.java b/src/test/java/org/prebid/server/it/TradPlusTest.java index 894bc3e4da3..8893ebed482 100644 --- a/src/test/java/org/prebid/server/it/TradPlusTest.java +++ b/src/test/java/org/prebid/server/it/TradPlusTest.java @@ -18,7 +18,7 @@ public class TradPlusTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTradPlus() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/accountTestID/tradplus-exchange")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/tradplus-exchange")) .withRequestBody(equalToJson(jsonFrom("openrtb2/tradplus/test-tradplus-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/tradplus/test-tradplus-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/TredioTest.java b/src/test/java/org/prebid/server/it/TredioTest.java index 5b37321abac..4e4e6411a68 100644 --- a/src/test/java/org/prebid/server/it/TredioTest.java +++ b/src/test/java/org/prebid/server/it/TredioTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,9 +19,6 @@ public class TredioTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromTredio() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/tredio-exchange")) - .withQueryParam("host", equalTo("someUniquePartnerName")) - .withQueryParam("accountId", equalTo("someSeat")) - .withQueryParam("sourceId", equalTo("someToken")) .withRequestBody(equalToJson(jsonFrom("openrtb2/tredio/test-tredio-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/tredio/test-tredio-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/UndertoneTest.java b/src/test/java/org/prebid/server/it/UndertoneTest.java index 89f781a86f7..23c6a947c70 100644 --- a/src/test/java/org/prebid/server/it/UndertoneTest.java +++ b/src/test/java/org/prebid/server/it/UndertoneTest.java @@ -31,5 +31,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromUndertone() throws IOExcepti response, singletonList("undertone")); } - } diff --git a/src/test/java/org/prebid/server/it/VidazooTest.java b/src/test/java/org/prebid/server/it/VidazooTest.java index 475d504a1f4..caa94f564a4 100644 --- a/src/test/java/org/prebid/server/it/VidazooTest.java +++ b/src/test/java/org/prebid/server/it/VidazooTest.java @@ -25,11 +25,9 @@ public void openrtb2AuctionShouldRespondWithBidsFromVidazoo() throws IOException // when final Response response = responseFor( "openrtb2/vidazoo/test-auction-vidazoo-request.json", - Endpoint.openrtb2_auction - ); + Endpoint.openrtb2_auction); // then assertJsonEquals("openrtb2/vidazoo/test-auction-vidazoo-response.json", response, List.of("vidazoo")); } - } diff --git a/src/test/java/org/prebid/server/it/VideoHeroesTest.java b/src/test/java/org/prebid/server/it/VideoHeroesTest.java index c9d6c6eac8c..496adef3314 100644 --- a/src/test/java/org/prebid/server/it/VideoHeroesTest.java +++ b/src/test/java/org/prebid/server/it/VideoHeroesTest.java @@ -8,7 +8,6 @@ import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class VideoHeroesTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromvideoheroes() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/videoheroes-exchange")) - .withQueryParam("partner", equalTo("somePlacementId")) .withRequestBody(equalToJson(jsonFrom("openrtb2/videoheroes/test-videoheroes-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/videoheroes/test-videoheroes-bid-response.json")))); diff --git a/src/test/java/org/prebid/server/it/XtrmqbTest.java b/src/test/java/org/prebid/server/it/XtrmqbTest.java index 4eba28bb289..8da478d1077 100644 --- a/src/test/java/org/prebid/server/it/XtrmqbTest.java +++ b/src/test/java/org/prebid/server/it/XtrmqbTest.java @@ -18,7 +18,7 @@ public class XtrmqbTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheXtrmqbBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/xtrmqb-exchange/test.host/123456")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/xtrmqb-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/xtrmqb/test-xtrmqb-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/it/YobeeTest.java b/src/test/java/org/prebid/server/it/YobeeTest.java index 5253e6e429a..232df984a07 100644 --- a/src/test/java/org/prebid/server/it/YobeeTest.java +++ b/src/test/java/org/prebid/server/it/YobeeTest.java @@ -9,7 +9,6 @@ import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; @@ -20,7 +19,6 @@ public class YobeeTest extends IntegrationTest { public void openrtb2AuctionShouldRespondWithBidsFromYobee() throws IOException, JSONException { // given WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/yobee-exchange")) - .withQueryParam("host", equalTo("host")) .withRequestBody(equalToJson(jsonFrom("openrtb2/yobee/test-yobee-bid-request.json"))) .willReturn(aResponse().withBody(jsonFrom("openrtb2/yobee/test-yobee-bid-response.json")))); @@ -32,5 +30,4 @@ public void openrtb2AuctionShouldRespondWithBidsFromYobee() throws IOException, // then assertJsonEquals("openrtb2/yobee/test-auction-yobee-response.json", response, List.of("yobee")); } - } diff --git a/src/test/java/org/prebid/server/it/hooks/SampleItExitpointHook.java b/src/test/java/org/prebid/server/it/hooks/SampleItExitpointHook.java index 82a494e7158..e08bd307e3c 100644 --- a/src/test/java/org/prebid/server/it/hooks/SampleItExitpointHook.java +++ b/src/test/java/org/prebid/server/it/hooks/SampleItExitpointHook.java @@ -76,5 +76,4 @@ private List updateBids(List seatBids) { public String code() { return "exitpoint"; } - } diff --git a/src/test/java/org/prebid/server/json/JsonMergerTest.java b/src/test/java/org/prebid/server/json/JsonMergerTest.java index 33551d129a8..14ba00fd600 100644 --- a/src/test/java/org/prebid/server/json/JsonMergerTest.java +++ b/src/test/java/org/prebid/server/json/JsonMergerTest.java @@ -94,5 +94,4 @@ public void mergeShouldReturnMergedObjectWhenOriginalObjectIsNull() { // then assertThat(result).isEqualTo(site); } - } diff --git a/src/test/java/org/prebid/server/orangeclickmedia/OrangeClickMediaTest.java b/src/test/java/org/prebid/server/orangeclickmedia/OrangeClickMediaTest.java index 12976f9da83..eabb6359327 100644 --- a/src/test/java/org/prebid/server/orangeclickmedia/OrangeClickMediaTest.java +++ b/src/test/java/org/prebid/server/orangeclickmedia/OrangeClickMediaTest.java @@ -19,7 +19,7 @@ public class OrangeClickMediaTest extends IntegrationTest { @Test public void openrtb2AuctionShouldRespondWithBidsFromTheOrangeClickMediaBidder() throws IOException, JSONException { // given - WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/orangeclickmedia-exchange/test.host/123456")) + WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/orangeclickmedia-exchange")) .withRequestBody(equalToJson( jsonFrom("openrtb2/orangeclickmedia/test-orangeclickmedia-bid-request.json"))) .willReturn(aResponse().withBody( diff --git a/src/test/java/org/prebid/server/vertx/httpclient/BasicHttpClientTest.java b/src/test/java/org/prebid/server/vertx/httpclient/BasicHttpClientTest.java index 61618b362ea..76c6616f984 100644 --- a/src/test/java/org/prebid/server/vertx/httpclient/BasicHttpClientTest.java +++ b/src/test/java/org/prebid/server/vertx/httpclient/BasicHttpClientTest.java @@ -21,7 +21,6 @@ import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; -import java.net.MalformedURLException; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.CountDownLatch; @@ -108,11 +107,13 @@ public void requestShouldAllowFollowingRedirections() { @Test public void requestShouldFailIfInvalidUrlPassed() { // given and when - final Future future = httpClient.request(HttpMethod.GET, null, null, (String) null, 1L); + final Future future = httpClient.request(HttpMethod.GET, "invalid_url", null, (String) null, 1L); // then assertThat(future.failed()).isTrue(); - assertThat(future.cause()).isInstanceOf(MalformedURLException.class); + assertThat(future.cause()) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("URL supplied is not valid: invalid_url"); } @Test 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 5611899aa11..17f864aa414 100644 --- a/src/test/resources/org/prebid/server/it/test-application.properties +++ b/src/test/resources/org/prebid/server/it/test-application.properties @@ -32,7 +32,7 @@ adapters.adgeneration.endpoint=http://localhost:8090/adgeneration-exchange adapters.adhese.enabled=true adapters.adhese.endpoint=http://localhost:8090/adhese-exchange adapters.adkerneladn.enabled=true -adapters.adkerneladn.endpoint=http://localhost:8090/adkerneladn-exchange?account={{PublisherID}} +adapters.adkerneladn.endpoint=http://localhost:8090/adkerneladn-exchange adapters.adkernel.enabled=true adapters.adkernel.endpoint=http://localhost:8090/adkernel-exchange adapters.adkernel.aliases.xapads.enabled=true @@ -44,19 +44,19 @@ adapters.adkernel.aliases.152media.endpoint=http://localhost:8090/152media-excha adapters.adman.enabled=true adapters.adman.endpoint=http://localhost:8090/adman-exchange adapters.admatic.enabled=true -adapters.admatic.endpoint=http://localhost:8090/admatic-exchange?host={{Host}} +adapters.admatic.endpoint=http://localhost:8090/admatic-exchange adapters.admatic.aliases.adt.enabled=true -adapters.admatic.aliases.adt.endpoint=http://localhost:8090/adt-exchange?host={{Host}} +adapters.admatic.aliases.adt.endpoint=http://localhost:8090/adt-exchange adapters.admatic.aliases.pixad.enabled=true -adapters.admatic.aliases.pixad.endpoint=http://localhost:8090/pixad-exchange?host={{Host}} +adapters.admatic.aliases.pixad.endpoint=http://localhost:8090/pixad-exchange adapters.admatic.aliases.monetixads.enabled=true -adapters.admatic.aliases.monetixads.endpoint=http://localhost:8090/monetixads-exchange?host={{Host}} +adapters.admatic.aliases.monetixads.endpoint=http://localhost:8090/monetixads-exchange adapters.admatic.aliases.admaticde.enabled=true -adapters.admatic.aliases.admaticde.endpoint=http://localhost:8090/admaticde-exchange?host={{Host}} +adapters.admatic.aliases.admaticde.endpoint=http://localhost:8090/admaticde-exchange adapters.admatic.aliases.yobee.enabled=true -adapters.admatic.aliases.yobee.endpoint=http://localhost:8090/yobee-exchange?host={{Host}} +adapters.admatic.aliases.yobee.endpoint=http://localhost:8090/yobee-exchange adapters.admatic.aliases.netaddiction.enabled=true -adapters.admatic.aliases.netaddiction.endpoint=http://localhost:8090/netaddiction-exchange?host={{Host}} +adapters.admatic.aliases.netaddiction.endpoint=http://localhost:8090/netaddiction-exchange adapters.admixer.enabled=true adapters.admixer.endpoint=http://localhost:8090/admixer-exchange adapters.adnuntius.enabled=true @@ -69,13 +69,13 @@ adapters.adpone.endpoint=http://localhost:8090/adpone-exchange adapters.adot.enabled=true adapters.adot.endpoint=http://localhost:8090/adot-exchange adapters.adverxo.enabled=true -adapters.adverxo.endpoint=http://localhost:8090/adverxo-exchange?adUnitId={{adUnitId}}&auth={{auth}} +adapters.adverxo.endpoint=http://localhost:8090/adverxo-exchange adapters.adverxo.aliases.adport.enabled=true adapters.adverxo.aliases.adport.endpoint=http://localhost:8090/adport-exchange adapters.adverxo.aliases.bidsmind.enabled=true adapters.adverxo.aliases.bidsmind.endpoint=http://localhost:8090/bidsmind-exchange adapters.adview.enabled=true -adapters.adview.endpoint=http://localhost:8090/adview-exchange?accountId={{AccountId}} +adapters.adview.endpoint=http://localhost:8090/adview-exchange adapters.adprime.enabled=true adapters.adprime.endpoint=http://localhost:8090/adprime-exchange adapters.adquery.enabled=true @@ -94,14 +94,14 @@ adapters.adtelligent.aliases.copper6.endpoint=http://localhost:8090/copper6-exch adapters.adtelligent.aliases.indicue.enabled=true adapters.adtelligent.aliases.indicue.endpoint=http://localhost:8090/indicue-exchange adapters.adtonos.enabled=true -adapters.adtonos.endpoint=http://localhost:8090/adtonos-exchange/{{PublisherId}} +adapters.adtonos.endpoint=http://localhost:8090/adtonos-exchange adapters.adtrgtme.enabled=true adapters.adtrgtme.endpoint=http://localhost:8090/adtrgtme-exchange adapters.aduptech.enabled=true adapters.aduptech.endpoint=http://localhost:8090/aduptech-exchange adapters.aduptech.target-currency=EUR adapters.advangelists.enabled=true -adapters.advangelists.endpoint=http://localhost:8090/advangelists-exchange?pubid={{PublisherID}} +adapters.advangelists.endpoint=http://localhost:8090/advangelists-exchange adapters.adxcg.enabled=true adapters.adxcg.endpoint=http://localhost:8090/adxcg-exchange adapters.adyoulike.enabled=true @@ -138,13 +138,13 @@ adapters.appnexus.aliases.mediafuse.endpoint=http://localhost:8090/mediafuse-exc adapters.appush.enabled=true adapters.appush.endpoint=http://localhost:8090/appush-exchange adapters.aso.enabled=true -adapters.aso.endpoint=http://localhost:8090/aso-exchange?zid={{ZoneID}} +adapters.aso.endpoint=http://localhost:8090/aso-exchange adapters.aso.aliases.bcmint.enabled=true -adapters.aso.aliases.bcmint.endpoint=http://localhost:8090/bcmint-exchange?zid={{ZoneID}} +adapters.aso.aliases.bcmint.endpoint=http://localhost:8090/bcmint-exchange adapters.aso.aliases.bidagency.enabled=true -adapters.aso.aliases.bidagency.endpoint=http://localhost:8090/bidagency-exchange?zid={{ZoneID}} +adapters.aso.aliases.bidagency.endpoint=http://localhost:8090/bidagency-exchange adapters.aso.aliases.kuantyx.enabled=true -adapters.aso.aliases.kuantyx.endpoint=http://localhost:8090/kuantyx-exchange?zid={{ZoneID}} +adapters.aso.aliases.kuantyx.endpoint=http://localhost:8090/kuantyx-exchange adapters.automatad.enabled=true adapters.automatad.endpoint=http://localhost:8090/automatad-exchange adapters.avocet.enabled=true @@ -160,7 +160,7 @@ adapters.beachfront.platform-id=142 adapters.beintoo.enabled=true adapters.beintoo.endpoint=http://localhost:8090/beintoo-exchange adapters.bematterfull.enabled=true -adapters.bematterfull.endpoint=http://localhost:8090/bematterfull-exchange?host={{Host}}&pid={{SourceId}} +adapters.bematterfull.endpoint=http://localhost:8090/bematterfull-exchange adapters.bidscube.enabled=true adapters.bidscube.endpoint=http://localhost:8090/bidscube-exchange adapters.bidstack.enabled=true @@ -170,7 +170,7 @@ adapters.bidtheatre.endpoint=http://localhost:8090/bidtheatre-exchange adapters.bigoad.enabled=true adapters.bigoad.endpoint=http://localhost:8090/bigoad-exchange adapters.blasto.enabled=true -adapters.blasto.endpoint=http://localhost:8090/blasto-exchange?source={{SourceId}}&account={{AccountID}} +adapters.blasto.endpoint=http://localhost:8090/blasto-exchange adapters.bliink.enabled=true adapters.bliink.endpoint=http://localhost:8090/bliink-exchange adapters.blis.enabled=true @@ -213,7 +213,7 @@ adapters.criteo.enabled=true adapters.criteo.endpoint=http://localhost:8090/criteo-exchange adapters.criteo.generate-slot-id=false adapters.datablocks.enabled=true -adapters.datablocks.endpoint=http://localhost:8090/datablocks-exchange?sid={{SourceId}} +adapters.datablocks.endpoint=http://localhost:8090/datablocks-exchange adapters.decenterads.enabled=true adapters.decenterads.endpoint=http://localhost:8090/decenterads-exchange adapters.deepintent.enabled=true @@ -223,11 +223,11 @@ adapters.definemedia.endpoint=http://localhost:8090/definemedia-exchange adapters.dianomi.enabled=true adapters.dianomi.endpoint=http://localhost:8090/dianomi-exchange adapters.displayio.enabled=true -adapters.displayio.endpoint=http://localhost:8090/displayio-exchange?publisher={{PublisherID}} +adapters.displayio.endpoint=http://localhost:8090/displayio-exchange adapters.dmx.enabled=true adapters.dmx.endpoint=http://localhost:8090/dmx-exchange adapters.driftpixel.enabled=true -adapters.driftpixel.endpoint=http://localhost:8090/driftpixel-exchange?env={{Host}}&pid={{SourceId}} +adapters.driftpixel.endpoint=http://localhost:8090/driftpixel-exchange adapters.dxkulture.enabled=true adapters.dxkulture.endpoint=http://localhost:8090/dxkulture-exchange adapters.edge226.enabled=true @@ -245,7 +245,7 @@ adapters.epsilon.enabled=true adapters.epsilon.endpoint=http://localhost:8090/epsilon-exchange adapters.epsilon.generate-bid-id=false adapters.escalax.enabled=true -adapters.escalax.endpoint=http://localhost:8090/escalax-exchange?k={{AccountID}}&name={{SourceId}} +adapters.escalax.endpoint=http://localhost:8090/escalax-exchange adapters.evolution.enabled=true adapters.evolution.endpoint=http://localhost:8090/evolution-exchange adapters.exco.enabled=true @@ -259,6 +259,7 @@ adapters.flipp.enabled=true adapters.flipp.endpoint=http://localhost:8090/flipp-exchange adapters.audiencenetwork.enabled=true adapters.audiencenetwork.endpoint=http://localhost:8090/audienceNetwork-exchange +adapters.audiencenetwork.timeout-notification-url-template=http://localhost:8090/audienceNetwork-timeout adapters.audiencenetwork.platform-id=101 adapters.audiencenetwork.app-secret=67234 adapters.freewheelssp.enabled=true @@ -289,6 +290,8 @@ adapters.huaweiads.extra-info.europeanEndpoint=http://localhost:8090/huaweiads-e adapters.huaweiads.extra-info.asianEndpoint=http://localhost:8090/huaweiads-exchange-as adapters.imds.enabled=true adapters.imds.endpoint=http://localhost:8090/imds-exchange +adapters.imds.aliases.synacormedia.enabled=true +adapters.imds.aliases.synacormedia.endpoint=http://localhost:8090/synacormedia-exchange adapters.impactify.enabled=true adapters.impactify.endpoint=http://localhost:8090/impactify-exchange adapters.improvedigital.enabled=true @@ -318,7 +321,7 @@ adapters.krushmedia.endpoint=http://localhost:8090/krushmedia-exchange adapters.kueezrtb.enabled=true adapters.kueezrtb.endpoint=http://localhost:8090/kueezrtb-exchange/ adapters.lemmadigital.enabled=true -adapters.lemmadigital.endpoint=http://localhost:8090/lemmadigital-exchange/{{PublisherID}}/{{AdUnit}} +adapters.lemmadigital.endpoint=http://localhost:8090/lemmadigital-exchange adapters.vungle.enabled=true adapters.vungle.endpoint=http://localhost:8090/vungle-exchange adapters.vungle.aliases.liftoff.enabled=true @@ -328,27 +331,27 @@ adapters.kargo.endpoint=http://localhost:8090/kargo-exchange adapters.kayzen.enabled=true adapters.kayzen.endpoint=http://localhost:8090/kayzen-exchange adapters.limelightDigital.enabled=true -adapters.limelightDigital.endpoint=http://localhost:8090/limelightDigital-exchange/{{Host}}/{{PublisherID}} +adapters.limelightDigital.endpoint=http://localhost:8090/limelightDigital-exchange adapters.limelightDigital.aliases.iionads.enabled=true -adapters.limelightDigital.aliases.iionads.endpoint=http://localhost:8090/iionads-exchange/{{Host}}/{{PublisherID}} +adapters.limelightDigital.aliases.iionads.endpoint=http://localhost:8090/iionads-exchange adapters.limelightDigital.aliases.adsyield.enabled=true -adapters.limelightDigital.aliases.adsyield.endpoint=http://localhost:8090/adsyield-exchange/{{Host}}/{{PublisherID}} +adapters.limelightDigital.aliases.adsyield.endpoint=http://localhost:8090/adsyield-exchange adapters.limelightDigital.aliases.greedygame.enabled=true -adapters.limelightDigital.aliases.greedygame.endpoint=http://localhost:8090/greedygame-exchange/{{Host}}/{{PublisherID}} +adapters.limelightDigital.aliases.greedygame.endpoint=http://localhost:8090/greedygame-exchange adapters.limelightDigital.aliases.xtrmqb.enabled=true -adapters.limelightDigital.aliases.xtrmqb.endpoint=http://localhost:8090/xtrmqb-exchange/{{Host}}/{{PublisherID}} +adapters.limelightDigital.aliases.xtrmqb.endpoint=http://localhost:8090/xtrmqb-exchange adapters.limelightDigital.aliases.embimedia.enabled=true -adapters.limelightDigital.aliases.embimedia.endpoint=http://localhost:8090/embimedia-exchange/{{Host}}/{{PublisherID}} +adapters.limelightDigital.aliases.embimedia.endpoint=http://localhost:8090/embimedia-exchange adapters.limelightDigital.aliases.filmzie.enabled=true -adapters.limelightDigital.aliases.filmzie.endpoint=http://localhost:8090/filmzie-exchange/{{Host}}/{{PublisherID}} +adapters.limelightDigital.aliases.filmzie.endpoint=http://localhost:8090/filmzie-exchange adapters.limelightDigital.aliases.tgm.enabled=true -adapters.limelightDigital.aliases.tgm.endpoint=http://localhost:8090/tgm-exchange/{{Host}}/{{PublisherID}} +adapters.limelightDigital.aliases.tgm.endpoint=http://localhost:8090/tgm-exchange adapters.limelightDigital.aliases.streamlyn.enabled=true -adapters.limelightDigital.aliases.streamlyn.endpoint=http://localhost:8090/streamlyn-exchange/{{Host}}/{{PublisherID}} +adapters.limelightDigital.aliases.streamlyn.endpoint=http://localhost:8090/streamlyn-exchange adapters.limelightDigital.aliases.streamvision.enabled=true -adapters.limelightDigital.aliases.streamvision.endpoint=http://localhost:8090/streamvision-exchange/{{Host}}/{{PublisherID}} +adapters.limelightDigital.aliases.streamvision.endpoint=http://localhost:8090/streamvision-exchange adapters.limelightDigital.aliases.orangeclickmedia.enabled=true -adapters.limelightDigital.aliases.orangeclickmedia.endpoint=http://localhost:8090/orangeclickmedia-exchange/{{Host}}/{{PublisherID}} +adapters.limelightDigital.aliases.orangeclickmedia.endpoint=http://localhost:8090/orangeclickmedia-exchange adapters.limelightDigital.aliases.velonium.enabled=true adapters.limelightDigital.aliases.velonium.endpoint=http://localhost:8090/velonium-exchange/ adapters.limelightDigital.aliases.adtg_org.enabled=true @@ -356,7 +359,7 @@ adapters.limelightDigital.aliases.adtg_org.endpoint=http://localhost:8090/adtg_o adapters.limelightDigital.aliases.performist.enabled=true adapters.limelightDigital.aliases.performist.endpoint=http://localhost:8090/performist-exchange/ adapters.lmkiviads.enabled=true -adapters.lmkiviads.endpoint=http://localhost:8090/lm-kiviads-exchange/{{SourceId}}/{{Host}} +adapters.lmkiviads.endpoint=http://localhost:8090/lm-kiviads-exchange adapters.lockerdome.enabled=true adapters.lockerdome.endpoint=http://localhost:8090/lockerdome-exchange adapters.logan.enabled=true @@ -368,7 +371,7 @@ adapters.loopme.endpoint=http://localhost:8090/loopme-exchange adapters.loyal.enabled=true adapters.loyal.endpoint=http://localhost:8090/loyal-exchange adapters.lunamedia.enabled=true -adapters.lunamedia.endpoint=http://localhost:8090/lunamedia-exchange?pubid= +adapters.lunamedia.endpoint=http://localhost:8090/lunamedia-exchange adapters.mabidder.enabled=true adapters.mabidder.endpoint=http://localhost:8090/mabidder-exchange adapters.madsense.enabled=true @@ -376,34 +379,34 @@ adapters.madsense.endpoint=http://localhost:8090/madsense-exchange adapters.madvertise.enabled=true adapters.madvertise.endpoint=http://localhost:8090/madvertise-exchange adapters.marsmedia.enabled=true -adapters.marsmedia.endpoint=http://localhost:8090/marsmedia-exchange?param=testParam +adapters.marsmedia.endpoint=http://localhost:8090/marsmedia-exchange adapters.mediago.enabled=true -adapters.mediago.endpoint=http://localhost:8090/mediago-exchange?token={{AccountID}}®ion={{Host}} +adapters.mediago.endpoint=http://localhost:8090/mediago-exchange adapters.medianet.enabled=true adapters.medianet.endpoint=http://localhost:8090/medianet-exchange adapters.melozen.enabled=true -adapters.melozen.endpoint=http://localhost:8090/melozen-exchange?pubId={{PublisherID}} +adapters.melozen.endpoint=http://localhost:8090/melozen-exchange adapters.mediasquare.enabled=true adapters.mediasquare.endpoint=http://localhost:8090/mediasquare-exchange adapters.metax.enabled=true -adapters.metax.endpoint=http://localhost:8090/metax-exchange?publisher_id={{publisherId}}&adunit={{adUnit}} +adapters.metax.endpoint=http://localhost:8090/metax-exchange adapters.mgid.enabled=true adapters.mgid.endpoint=http://localhost:8090/mgid-exchange/ adapters.mgidX.enabled=true adapters.mgidX.endpoint=http://localhost:8090/mgidx-exchange adapters.minutemedia.enabled=true -adapters.minutemedia.endpoint=http://localhost:8090/minutemedia-exchange?publisherId={{PublisherId}} -adapters.minutemedia.test-endpoint=http://localhost:8090/minutemedia-exchange?publisherId={{PublisherId}} +adapters.minutemedia.endpoint=http://localhost:8090/minutemedia-exchange +adapters.minutemedia.test-endpoint=http://localhost:8090/minutemedia-exchange adapters.missena.enabled=true adapters.missena.endpoint=http://localhost:8090/missena-exchange adapters.mobfoxpb.enabled=true -adapters.mobfoxpb.endpoint=http://localhost:8090/mobfoxpb-exchange?c=__route__&m=__method__&key=__key__ +adapters.mobfoxpb.endpoint=http://localhost:8090/mobfoxpb-exchange adapters.mobilefuse.enabled=true adapters.mobilefuse.endpoint=http://localhost:8090/mobilefuse-exchange/ adapters.mobkoi.enabled=true adapters.mobkoi.endpoint=http://localhost:8090/mobkoi-exchange adapters.motorik.enabled=true -adapters.motorik.endpoint=http://localhost:8090/motorik-exchange?k={{AccountID}}&name={{SourceId}} +adapters.motorik.endpoint=http://localhost:8090/motorik-exchange adapters.nativery.enabled=true adapters.nativery.endpoint=http://localhost:8090/nativery-exchange adapters.nextmillennium.enabled=true @@ -418,7 +421,7 @@ adapters.nexx360.aliases.prismassp.endpoint=http://localhost:8090/prismassp-exch adapters.nexx360.aliases.easybid.enabled=true adapters.nexx360.aliases.easybid.endpoint=http://localhost:8090/easybid-exchange adapters.nobid.enabled=true -adapters.nobid.endpoint=http://localhost:8090/nobid-exchange?pubid= +adapters.nobid.endpoint=http://localhost:8090/nobid-exchange adapters.ogury.enabled=true adapters.ogury.endpoint=http://localhost:8090/ogury-exchange adapters.oms.enabled=true @@ -440,7 +443,7 @@ adapters.orbidder.endpoint=http://localhost:8090/orbidder-exchange adapters.outbrain.enabled=true adapters.outbrain.endpoint=http://localhost:8090/outbrain-exchange adapters.ownadx.enabled=true -adapters.ownadx.endpoint=http://localhost:8090/ownadx-exchange/bid/{{SeatID}}/{{SspID}}?token={{TokenID}} +adapters.ownadx.endpoint=http://localhost:8090/ownadx-exchange adapters.pangle.enabled=true adapters.pangle.endpoint=http://localhost:8090/pangle-exchange adapters.pgamssp.enabled=true @@ -464,10 +467,10 @@ adapters.qt.endpoint=http://localhost:8090/qt-exchange adapters.readpeak.enabled=true adapters.readpeak.endpoint=http://localhost:8090/readpeak-exchange adapters.rediads.enabled=true -adapters.rediads.endpoint=http://{{SUBDOMAIN}}:8090/rediads-exchange +adapters.rediads.endpoint=http://localhost:8090/rediads-exchange adapters.rediads.default-subdomain=localhost adapters.relevantdigital.enabled=true -adapters.relevantdigital.endpoint=http://localhost:8090/relevantdigital-exchange?pbsHost={{Host}} +adapters.relevantdigital.endpoint=http://localhost:8090/relevantdigital-exchange adapters.resetdigital.enabled=true adapters.resetdigital.endpoint=http://localhost:8090/resetdigital-exchange adapters.revcontent.enabled=true @@ -477,13 +480,13 @@ adapters.richaudience.endpoint=http://localhost:8090/richaudience-exchange adapters.rise.enabled=true adapters.rise.endpoint=http://localhost:8090/rise-exchange adapters.roulax.enabled=true -adapters.roulax.endpoint=http://localhost:8090/roulax-exchange/{{PublisherID}}?pid={{AccountID}} +adapters.roulax.endpoint=http://localhost:8090/roulax-exchange adapters.rtbhouse.enabled=true adapters.rtbhouse.endpoint=http://localhost:8090/rtbhouse-exchange adapters.rubicon.enabled=true -adapters.rubicon.endpoint=http://localhost:8090/rubicon-exchange?tk_xint=rp-pbs +adapters.rubicon.endpoint=http://localhost:8090/rubicon-exchange adapters.rubicon.aliases.magnite.enabled=true -adapters.rubicon.aliases.magnite.endpoint=http://localhost:8090/magnite-exchange?tk_xint=rp-pbs +adapters.rubicon.aliases.magnite.endpoint=http://localhost:8090/magnite-exchange adapters.rubicon.XAPI.Username=rubicon_user adapters.rubicon.XAPI.Password=rubicon_password adapters.rubicon.usersync.redirect.url=http://localhost:8090/rubicon-usersync?gdpr={{gdpr}}&gdpr_consent={{gdpr_consent}} @@ -494,51 +497,51 @@ adapters.salunamedia.endpoint=http://localhost:8090/salunamedia-exchange adapters.screencore.enabled=true adapters.screencore.endpoint=http://localhost:8090/screencore-exchange adapters.seedingAlliance.enabled=true -adapters.seedingAlliance.endpoint=http://localhost:8090/seedingAlliance-exchange?ssp={{AccountId}} +adapters.seedingAlliance.endpoint=http://localhost:8090/seedingAlliance-exchange adapters.seedingAlliance.aliases.suntContent.enabled=true -adapters.seedingAlliance.aliases.suntContent.endpoint=http://localhost:8090/suntContent-exchange?ssp={{AccountId}} +adapters.seedingAlliance.aliases.suntContent.endpoint=http://localhost:8090/suntContent-exchange adapters.seedingAlliance.aliases.finative.enabled=true -adapters.seedingAlliance.aliases.finative.endpoint=http://localhost:8090/finative-exchange?ssp={{AccountId}} +adapters.seedingAlliance.aliases.finative.endpoint=http://localhost:8090/finative-exchange adapters.seedtag.enabled=true adapters.seedtag.endpoint=http://localhost:8090/seedtag-exchange adapters.smaato.enabled=true adapters.smaato.endpoint=http://localhost:8090/smaato-exchange adapters.smartadserver.enabled=true adapters.smartadserver.endpoint=http://localhost:8090/smartadserver-exchange -adapters.smartadserver.secondary-endpoint=http://localhost:8090/smartadserver-secondary-exchange +adapters.smartadserver.pg-endpoint=http://localhost:8090/smartadserver-pg-exchange adapters.smartadserver.aliases.equativ.enabled=true adapters.smartrtb.enabled=true adapters.smartrtb.endpoint=http://localhost:8090/smartrtb-exchange/ adapters.smartx.enabled=true adapters.smartx.endpoint=http://localhost:8090/smartx-exchange adapters.smarthub.enabled=true -adapters.smarthub.endpoint=http://localhost:8090/smarthub-exchange?host={{Host}}&accountId={{AccountID}}&sourceId={{SourceId}} +adapters.smarthub.endpoint=http://localhost:8090/smarthub-exchange adapters.smarthub.aliases.markapp.enabled=true -adapters.smarthub.aliases.markapp.endpoint=http://localhost:8090/markapp-exchange?host={{Host}}&accountId={{AccountID}}&sourceId={{SourceId}} +adapters.smarthub.aliases.markapp.endpoint=http://localhost:8090/markapp-exchange adapters.smarthub.aliases.jdpmedia.enabled=true -adapters.smarthub.aliases.jdpmedia.endpoint=http://localhost:8090/jdpmedia-exchange?host={{Host}}&accountId={{AccountID}}&sourceId={{SourceId}} +adapters.smarthub.aliases.jdpmedia.endpoint=http://localhost:8090/jdpmedia-exchange adapters.smarthub.aliases.tredio.enabled=true -adapters.smarthub.aliases.tredio.endpoint=http://localhost:8090/tredio-exchange?host={{Host}}&accountId={{AccountID}}&sourceId={{SourceId}} +adapters.smarthub.aliases.tredio.endpoint=http://localhost:8090/tredio-exchange adapters.smarthub.aliases.felixads.enabled=true -adapters.smarthub.aliases.felixads.endpoint=http://localhost:8090/felixads-exchange?host={{Host}}&accountId={{AccountID}}&sourceId={{SourceId}} +adapters.smarthub.aliases.felixads.endpoint=http://localhost:8090/felixads-exchange adapters.smarthub.aliases.jambojar.enabled=true -adapters.smarthub.aliases.jambojar.endpoint=http://localhost:8090/jambojar-exchange?host={{Host}}&accountId={{AccountID}}&sourceId={{SourceId}} +adapters.smarthub.aliases.jambojar.endpoint=http://localhost:8090/jambojar-exchange adapters.smarthub.aliases.adinify.enabled=true -adapters.smarthub.aliases.adinify.endpoint=http://localhost:8090/adinify-exchange?host={{Host}}&accountId={{AccountID}}&sourceId={{SourceId}} +adapters.smarthub.aliases.adinify.endpoint=http://localhost:8090/adinify-exchange adapters.smarthub.aliases.addigi.enabled=true adapters.smarthub.aliases.addigi.endpoint=http://localhost:8090/addigi-exchange adapters.smarthub.aliases.artechnology.enabled=true -adapters.smarthub.aliases.artechnology.endpoint=http://localhost:8090/artechnology-exchange?host={{Host}}&accountId={{AccountID}}&sourceId={{SourceId}} +adapters.smarthub.aliases.artechnology.endpoint=http://localhost:8090/artechnology-exchange adapters.smarthub.aliases.radianfusion.enabled=true -adapters.smarthub.aliases.radianfusion.endpoint=http://localhost:8090/radianfusion-exchange?host={{Host}}&accountId={{AccountID}}&sourceId={{SourceId}} +adapters.smarthub.aliases.radianfusion.endpoint=http://localhost:8090/radianfusion-exchange adapters.smartyads.enabled=true adapters.smartyads.endpoint=http://localhost:8090/smartyads-exchange adapters.smilewanted.enabled=true -adapters.smilewanted.endpoint=http://localhost:8090/smilewanted-exchange/java/{{ZoneId}} +adapters.smilewanted.endpoint=http://localhost:8090/smilewanted-exchange adapters.smoot.enabled=true adapters.smoot.endpoint=http://localhost:8090/smoot-exchange adapters.smrtconnect.enabled=true -adapters.smrtconnect.endpoint=http://localhost:8090/smrtconnect-exchange?supply_id={{SupplyId}} +adapters.smrtconnect.endpoint=http://localhost:8090/smrtconnect-exchange adapters.sonobi.enabled=true adapters.sonobi.endpoint=http://localhost:8090/sonobi-exchange adapters.sovrn.enabled=true @@ -594,9 +597,9 @@ adapters.teqblaze.aliases.progx.endpoint=http://localhost:8090/progx-exchange/ adapters.theadx.enabled=true adapters.theadx.endpoint=http://localhost:8090/theadx-exchange adapters.tradplus.enabled=true -adapters.tradplus.endpoint=http://{{ZoneID}}localhost:8090/{{AccountID}}/tradplus-exchange +adapters.tradplus.endpoint=http://localhost:8090/tradplus-exchange adapters.thetradedesk.enabled=true -adapters.thetradedesk.endpoint=http://localhost:8090/thetradedesk-exchange/{{SupplyId}} +adapters.thetradedesk.endpoint=http://localhost:8090/thetradedesk-exchange adapters.triplelift.enabled=true adapters.triplelift.endpoint=http://localhost:8090/triplelift-exchange adapters.tripleliftnative.enabled=true @@ -622,7 +625,7 @@ adapters.undertone.endpoint=http://localhost:8090/undertone-exchange adapters.unicorn.enabled=true adapters.unicorn.endpoint=http://localhost:8090/unicorn-exchange adapters.between.enabled=true -adapters.between.endpoint=http://localhost:8090/between-exchange?pubId={{PublisherId}} +adapters.between.endpoint=http://localhost:8090/between-exchange adapters.bidmachine.enabled=true adapters.bidmachine.endpoint=http://localhost:8090/bidmachine-exchange adapters.bidmatic.enabled=true @@ -652,7 +655,7 @@ adapters.vidazoo.aliases.tagoras.endpoint=http://localhost:8090/tagoras-exchange adapters.videobyte.enabled=true adapters.videobyte.endpoint=http://localhost:8090/videobyte-exchange adapters.videoheroes.enabled=true -adapters.videoheroes.endpoint=http://localhost:8090/videoheroes-exchange?partner={{PublisherID}} +adapters.videoheroes.endpoint=http://localhost:8090/videoheroes-exchange adapters.vidoomy.enabled=true adapters.vidoomy.endpoint=http://localhost:8090/vidoomy-exchange adapters.visx.enabled=true @@ -680,7 +683,7 @@ adapters.yieldone.endpoint=http://localhost:8090/yieldone-exchange adapters.zentotem.enabled=true adapters.zentotem.endpoint=http://localhost:8090/zentotem-exchange adapters.zeroclickfraud.enabled=true -adapters.zeroclickfraud.endpoint=http://{{Host}}/zeroclickfraud-exchange?sid={{SourceId}} +adapters.zeroclickfraud.endpoint=http://localhost:8090/zeroclickfraud-exchange adapters.aax.enabled=true adapters.aax.endpoint=http://localhost:8090/aax-exchange adapters.zmaticoo.enabled=true