Skip to content

Commit 4fcaeef

Browse files
authored
Revert "Multiple Bidder Codes Fix" (#3853)
1 parent 099c00d commit 4fcaeef

14 files changed

Lines changed: 326 additions & 950 deletions

File tree

src/main/java/org/prebid/server/auction/BidResponseCreator.java

Lines changed: 44 additions & 53 deletions
Large diffs are not rendered by default.

src/main/java/org/prebid/server/auction/ExchangeService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ private Future<AuctionContext> runAuction(AuctionContext receivedContext) {
278278
.map(auctionParticipations -> updateResponsesMetrics(auctionParticipations, account, aliases))
279279
.map(context::with))
280280
// produce response from bidder results
281-
.compose(context -> bidResponseCreator.create(context, cacheInfo, bidderToMultiBid)
281+
.compose(context -> bidResponseCreator.create(context, cacheInfo, aliases, bidderToMultiBid)
282282
.map(bidResponse -> criteriaLogManager.traceResponse(
283283
logger,
284284
bidResponse,

src/main/java/org/prebid/server/auction/aliases/BidderAliases.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import org.apache.commons.collections4.MapUtils;
44
import org.apache.commons.collections4.map.CaseInsensitiveMap;
55
import org.apache.commons.lang3.BooleanUtils;
6-
import org.apache.commons.lang3.ObjectUtils;
76
import org.apache.commons.lang3.StringUtils;
87
import org.prebid.server.bidder.BidderCatalog;
98

@@ -86,19 +85,10 @@ private Integer resolveAliasVendorIdViaCatalog(String alias) {
8685
}
8786

8887
public boolean isAllowedAlternateBidderCode(String bidder, String alternateBidderCode) {
89-
final Set<String> allowedBidderCodes = ObjectUtils.firstNonNull(
90-
bidderToAllowedBidderCodes.get(bidder),
91-
bidderToAllowedBidderCodes.get(resolveBidder(bidder)),
92-
Collections.emptySet());
88+
final Set<String> allowedBidderCodes = bidderToAllowedBidderCodes.getOrDefault(bidder, Collections.emptySet());
9389
return allowedBidderCodes.contains(WILDCARD) || allowedBidderCodes.contains(alternateBidderCode);
9490
}
9591

96-
public boolean isKnownAlternateBidderCode(String alternateBidderCode) {
97-
return bidderToAllowedBidderCodes.values().stream()
98-
.anyMatch(knownBidderCodes ->
99-
knownBidderCodes.contains(WILDCARD) || knownBidderCodes.contains(alternateBidderCode));
100-
}
101-
10292
private static Map<String, Set<String>> resolveAlternateBidderCodes(
10393
AlternateBidderCodesConfig alternateBidderCodes) {
10494

src/main/java/org/prebid/server/auction/model/BidderResponseInfo.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,11 @@ public class BidderResponseInfo {
1010

1111
String bidder;
1212

13-
String seat;
14-
15-
String adapterCode;
16-
1713
BidderSeatBidInfo seatBid;
1814

1915
int responseTime;
2016

2117
public BidderResponseInfo with(BidderSeatBidInfo seatBid) {
22-
return of(this.bidder, this.seat, this.adapterCode, seatBid, this.responseTime);
18+
return of(this.bidder, seatBid, this.responseTime);
2319
}
2420
}

src/main/java/org/prebid/server/bidadjustments/BidAdjustmentsProcessor.java

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.prebid.server.bidadjustments;
22

3-
import com.fasterxml.jackson.databind.JsonNode;
43
import com.fasterxml.jackson.databind.node.DecimalNode;
54
import com.fasterxml.jackson.databind.node.ObjectNode;
65
import com.fasterxml.jackson.databind.node.TextNode;
@@ -22,22 +21,18 @@
2221
import org.prebid.server.proto.openrtb.ext.request.ExtRequestBidAdjustmentFactors;
2322
import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebid;
2423
import org.prebid.server.proto.openrtb.ext.request.ImpMediaType;
25-
import org.prebid.server.proto.openrtb.ext.response.ExtBidPrebid;
26-
import org.prebid.server.proto.openrtb.ext.response.ExtBidPrebidMeta;
2724
import org.prebid.server.util.PbsUtil;
2825

2926
import java.math.BigDecimal;
3027
import java.util.ArrayList;
3128
import java.util.List;
3229
import java.util.Objects;
33-
import java.util.Optional;
3430
import java.util.stream.Collectors;
3531

3632
public class BidAdjustmentsProcessor {
3733

3834
private static final String ORIGINAL_BID_CPM = "origbidcpm";
3935
private static final String ORIGINAL_BID_CURRENCY = "origbidcur";
40-
private static final String PREBID_EXT = "prebid";
4136

4237
private final CurrencyConversionService currencyService;
4338
private final BidAdjustmentFactorResolver bidAdjustmentFactorResolver;
@@ -102,7 +97,7 @@ private BidderBid applyBidAdjustments(BidderBid bidderBid,
10297

10398
final Price priceWithFactorsApplied = applyBidAdjustmentFactors(
10499
originalPrice,
105-
getAdapterCode(bidderBid.getBid()),
100+
bidder,
106101
bidderBid.getSeat(),
107102
bidRequest,
108103
mediaType);
@@ -122,23 +117,6 @@ private BidderBid applyBidAdjustments(BidderBid bidderBid,
122117
}
123118
}
124119

125-
private String getAdapterCode(Bid bid) {
126-
return Optional.ofNullable(bid.getExt())
127-
.filter(ext -> ext.hasNonNull(PREBID_EXT))
128-
.map(this::convertValue)
129-
.map(ExtBidPrebid::getMeta)
130-
.map(ExtBidPrebidMeta::getAdapterCode)
131-
.orElse(null);
132-
}
133-
134-
private ExtBidPrebid convertValue(JsonNode jsonNode) {
135-
try {
136-
return mapper.mapper().convertValue(jsonNode.get(PREBID_EXT), ExtBidPrebid.class);
137-
} catch (IllegalArgumentException ignored) {
138-
return null;
139-
}
140-
}
141-
142120
private BidderBid updateBid(Price originalPrice, Price adjustedPrice, BidderBid bidderBid, BidRequest bidRequest) {
143121
final Bid bid = bidderBid.getBid();
144122
final ObjectNode bidExt = bid.getExt();

src/main/java/org/prebid/server/validation/RequestValidator.java

Lines changed: 7 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@
1616
import org.apache.commons.collections4.map.CaseInsensitiveMap;
1717
import org.apache.commons.lang3.ObjectUtils;
1818
import org.apache.commons.lang3.StringUtils;
19-
import org.prebid.server.auction.aliases.AlternateBidder;
20-
import org.prebid.server.auction.aliases.AlternateBidderCodesConfig;
21-
import org.prebid.server.auction.aliases.BidderAliases;
2219
import org.prebid.server.auction.model.debug.DebugContext;
2320
import org.prebid.server.bidder.BidderCatalog;
2421
import org.prebid.server.json.JacksonMapper;
@@ -138,17 +135,10 @@ public ValidationResult validate(Account account,
138135
validateTargeting(targeting);
139136
}
140137
aliases = new CaseInsensitiveMap<>(MapUtils.emptyIfNull(extRequestPrebid.getAliases()));
138+
141139
validateAliases(aliases, warnings, account);
142140
validateAliasesGvlIds(extRequestPrebid, aliases);
143-
validateAlternateBidderCodes(extRequestPrebid.getAlternateBidderCodes(), aliases);
144-
145-
final AlternateBidderCodesConfig alternateBidderCodesConfig = ObjectUtils.defaultIfNull(
146-
extRequestPrebid.getAlternateBidderCodes(),
147-
account == null ? null : account.getAlternateBidderCodes());
148-
149-
final BidderAliases bidderAliases = BidderAliases.of(
150-
aliases, null, bidderCatalog, alternateBidderCodesConfig);
151-
validateBidAdjustmentFactors(extRequestPrebid.getBidadjustmentfactors(), bidderAliases);
141+
validateBidAdjustmentFactors(extRequestPrebid.getBidadjustmentfactors());
152142
validateExtBidPrebidData(extRequestPrebid.getData(), aliases, isDebugEnabled, warnings);
153143
validateSchains(extRequestPrebid.getSchains());
154144
}
@@ -251,24 +241,8 @@ private void validateAliasesGvlIds(ExtRequestPrebid extRequestPrebid,
251241
}
252242
}
253243

254-
private void validateAlternateBidderCodes(AlternateBidderCodesConfig alternateBidderCodesConfig,
255-
Map<String, String> aliases) throws ValidationException {
256-
257-
final Map<String, ? extends AlternateBidder> alternateBidders = Optional.ofNullable(alternateBidderCodesConfig)
258-
.map(AlternateBidderCodesConfig::getBidders)
259-
.orElse(Collections.emptyMap());
260-
261-
for (Map.Entry<String, ? extends AlternateBidder> alternateBidder : alternateBidders.entrySet()) {
262-
final String bidder = alternateBidder.getKey();
263-
if (isUnknownBidderOrAlias(bidder, aliases)) {
264-
throw new ValidationException(
265-
"request.ext.prebid.alternatebiddercodes.bidders.%s is not a known bidder or alias", bidder);
266-
}
267-
}
268-
}
269-
270-
private void validateBidAdjustmentFactors(ExtRequestBidAdjustmentFactors adjustmentFactors,
271-
BidderAliases bidderAliases) throws ValidationException {
244+
private void validateBidAdjustmentFactors(ExtRequestBidAdjustmentFactors adjustmentFactors)
245+
throws ValidationException {
272246

273247
final Map<String, BigDecimal> bidderAdjustments = adjustmentFactors != null
274248
? adjustmentFactors.getAdjustments()
@@ -277,14 +251,6 @@ private void validateBidAdjustmentFactors(ExtRequestBidAdjustmentFactors adjustm
277251
for (Map.Entry<String, BigDecimal> bidderAdjustment : bidderAdjustments.entrySet()) {
278252
final String bidder = bidderAdjustment.getKey();
279253

280-
if (!bidderCatalog.isValidName(bidder)
281-
&& !bidderAliases.isAliasDefined(bidder)
282-
&& !bidderAliases.isKnownAlternateBidderCode(bidder)) {
283-
284-
throw new ValidationException(
285-
"request.ext.prebid.bidadjustmentfactors.%s is not a known bidder or alias", bidder);
286-
}
287-
288254
final BigDecimal adjustmentFactor = bidderAdjustment.getValue();
289255
if (adjustmentFactor.compareTo(BigDecimal.ZERO) <= 0) {
290256
throw new ValidationException(
@@ -303,26 +269,17 @@ private void validateBidAdjustmentFactors(ExtRequestBidAdjustmentFactors adjustm
303269

304270
for (Map.Entry<ImpMediaType, Map<String, BigDecimal>> entry
305271
: adjustmentsMediaTypeFactors.entrySet()) {
306-
validateBidAdjustmentFactorsByMediatype(entry.getKey(), entry.getValue(), bidderAliases);
272+
validateBidAdjustmentFactorsByMediatype(entry.getKey(), entry.getValue());
307273
}
308274
}
309275

310276
private void validateBidAdjustmentFactorsByMediatype(ImpMediaType mediaType,
311-
Map<String, BigDecimal> bidderAdjustments,
312-
BidderAliases bidderAliases) throws ValidationException {
277+
Map<String, BigDecimal> bidderAdjustments)
278+
throws ValidationException {
313279

314280
for (Map.Entry<String, BigDecimal> bidderAdjustment : bidderAdjustments.entrySet()) {
315281
final String bidder = bidderAdjustment.getKey();
316282

317-
if (!bidderCatalog.isValidName(bidder)
318-
&& !bidderAliases.isAliasDefined(bidder)
319-
&& !bidderAliases.isKnownAlternateBidderCode(bidder)) {
320-
321-
throw new ValidationException(
322-
"request.ext.prebid.bidadjustmentfactors.%s.%s is not a known bidder or alias",
323-
mediaType, bidder);
324-
}
325-
326283
final BigDecimal adjustmentFactor = bidderAdjustment.getValue();
327284
if (adjustmentFactor.compareTo(BigDecimal.ZERO) <= 0) {
328285
throw new ValidationException(

0 commit comments

Comments
 (0)