-
Notifications
You must be signed in to change notification settings - Fork 188
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix #3592. Bad Input Error if pbjs s2s config contains alias configuration for a disabled adapter #3650
base: master
Are you sure you want to change the base?
Fix #3592. Bad Input Error if pbjs s2s config contains alias configuration for a disabled adapter #3650
Conversation
22c0aa7
to
ff61c81
Compare
The issue is in Community Review status, so we will wait for confirmation |
@@ -111,6 +112,7 @@ public Future<WithPodErrors<AuctionContext>> fromRequest(RoutingContext routingC | |||
.compose(httpRequest -> createBidRequest(httpRequest) | |||
.map(bidRequest -> removeEmptyEids(bidRequest, initialAuctionContext.getDebugWarnings())) | |||
.compose(bidRequest -> validateRequest( | |||
initialAuctionContext.getAccount(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
initialAuctionContext.getAccount()
will always return null
here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can accept it this way, since we haven't supported Video endpoint for many months now.
public void updateAdapterRequestDisabledBidderMetric(String bidder, Account account) { | ||
forAdapter(bidder).request().incCounter(MetricName.disabled_bidder); | ||
if (accountMetricsVerbosityResolver.forAccount(account) | ||
.isAtLeast(AccountMetricsVerbosityLevel.detailed)) { | ||
forAccount(account.getId()).adapter().forAdapter(bidder).request().incCounter(MetricName.disabled_bidder); | ||
} | ||
} | ||
|
||
public void updateAdapterRequestUnknownBidderMetric(String bidder, Account account) { | ||
forAdapter(bidder).request().incCounter(MetricName.unknown_bidder); | ||
if (accountMetricsVerbosityResolver.forAccount(account) | ||
.isAtLeast(AccountMetricsVerbosityLevel.detailed)) { | ||
forAccount(account.getId()).adapter().forAdapter(bidder).request().incCounter(MetricName.unknown_bidder); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't like this solution. Someone can spam the server with invalid bidders and load the memory by creating new entries in the map (with many invalid bidders).
@zxPhoenix could you please update this PR? |
Sure. Sorry for the delay. I have prioritised this PR. |
ff61c81
to
3119f39
Compare
@Value("${settings.fail-on-disabled-bidders}") boolean failOnDisabledBidders, | ||
@Value("${settings.fail-on-unknown-bidders}") boolean failOnUnknownBidders) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please, add default values as on line above
private void validateAliases(Map<String, String> aliases, List<String> warnings, | ||
Metrics metrics, Account account) throws ValidationException { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need to pass Metrics
here, it's not a static method
final String message = String.format("request.ext.prebid.aliases.%s refers to unknown bidder: %s", | ||
alias, coreBidder); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"request.ext.prebid.aliases.%s refers to unknown bidder: %s".format(alias, coreBidder);
final String message = String.format("request.ext.prebid.aliases.%s refers to disabled bidder: %s", | ||
alias, coreBidder); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here
🔧 Type of changes
✨ What's the context?
Fix issue #3592. Bad Input Error if pbjs s2s config contains alias configuration for a disabled adapter.
Move unknown bidder and bidder is deactivated errors to warnings level.
Add unknown_bidder and deactivated_bidder metrics
🧠 Rationale behind the change
Why did you choose to make these changes? Were there any trade-offs you had to consider?
🔎 New Bid Adapter Checklist
🧪 Test plan
Changes are covered by unit tests.
🏎 Quality check