Skip to content

Commit 5c4edf9

Browse files
committed
Remove httpcomponents.client5
1 parent c0446ec commit 5c4edf9

37 files changed

Lines changed: 1014 additions & 729 deletions

File tree

extra/modules/wurfl-devicedetection/src/main/java/org/prebid/server/hooks/modules/com/scientiamobile/wurfl/devicedetection/model/WURFLEngineUtils.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
import com.scientiamobile.wurfl.core.WURFLEngine;
55
import com.scientiamobile.wurfl.core.cache.LRUMapCacheProvider;
66
import com.scientiamobile.wurfl.core.cache.NullCacheProvider;
7-
import org.apache.hc.core5.net.URIBuilder;
87
import org.prebid.server.hooks.modules.com.scientiamobile.wurfl.devicedetection.config.WURFLDeviceDetectionConfigProperties;
98
import org.prebid.server.hooks.modules.com.scientiamobile.wurfl.devicedetection.exc.WURFLDeviceDetectionException;
9+
import org.prebid.server.util.HttpUtil;
1010

11-
import java.net.URI;
11+
import java.net.URL;
1212
import java.nio.file.Paths;
1313
import java.util.ArrayList;
1414
import java.util.Collections;
@@ -57,8 +57,8 @@ private static String wurflFilePathFromConfig(WURFLDeviceDetectionConfigProperti
5757

5858
public static String extractWURFLFileName(String wurflSnapshotUrl) {
5959
try {
60-
final URI uri = new URIBuilder(wurflSnapshotUrl).build();
61-
final String path = uri.getPath();
60+
final URL url = HttpUtil.parseUrl(wurflSnapshotUrl);
61+
final String path = url.getPath();
6262
return path.substring(path.lastIndexOf('/') + 1);
6363
} catch (Exception e) {
6464
throw new IllegalArgumentException("Invalid WURFL snapshot URL: " + wurflSnapshotUrl, e);

pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,10 @@
8080
<groupId>io.vertx</groupId>
8181
<artifactId>vertx-auth-common</artifactId>
8282
</dependency>
83+
<dependency>
84+
<groupId>io.vertx</groupId>
85+
<artifactId>vertx-uri-template</artifactId>
86+
</dependency>
8387
<dependency>
8488
<groupId>com.ongres.scram</groupId>
8589
<artifactId>client</artifactId>
@@ -110,10 +114,6 @@
110114
<groupId>org.apache.commons</groupId>
111115
<artifactId>commons-math3</artifactId>
112116
</dependency>
113-
<dependency>
114-
<groupId>org.apache.httpcomponents.client5</groupId>
115-
<artifactId>httpclient5</artifactId>
116-
</dependency>
117117
<dependency>
118118
<groupId>com.github.seancfoley</groupId>
119119
<artifactId>ipaddress</artifactId>

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,19 @@
55
import inet.ipaddr.IPAddressString;
66
import inet.ipaddr.IPAddressStringParameters;
77
import org.apache.commons.lang3.StringUtils;
8-
import org.apache.hc.core5.net.InetAddressUtils;
98
import org.prebid.server.auction.model.IpAddress;
109
import org.prebid.server.log.Logger;
1110
import org.prebid.server.log.LoggerFactory;
1211

1312
import java.util.List;
13+
import java.util.regex.Pattern;
1414

1515
public class IpAddressHelper {
1616

1717
private static final Logger logger = LoggerFactory.getLogger(IpAddressHelper.class);
1818

19+
private static final Pattern IP_V4_PATTERN =
20+
Pattern.compile("^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\.(?!$)|$)){4}$");
1921
private static final IPAddressStringParameters IP_ADDRESS_VALIDATION_OPTIONS =
2022
IPAddressString.DEFAULT_VALIDATION_OPTIONS.toBuilder()
2123
.allowSingleSegment(false)
@@ -73,7 +75,7 @@ public IpAddress toIpAddress(String ip) {
7375
}
7476

7577
public String maskIpv4(String ip) {
76-
if (StringUtils.isBlank(ip) || !InetAddressUtils.isIPv4Address(ip)) {
78+
if (StringUtils.isBlank(ip) || !IP_V4_PATTERN.matcher(ip).matches()) {
7779
return ip;
7880
}
7981

src/main/java/org/prebid/server/bidder/adgeneration/AdgenerationBidder.java

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@
1212
import com.iab.openrtb.response.Bid;
1313
import io.vertx.core.MultiMap;
1414
import io.vertx.core.http.HttpMethod;
15+
import io.vertx.uritemplate.UriTemplate;
16+
import io.vertx.uritemplate.Variables;
1517
import org.apache.commons.collections4.CollectionUtils;
1618
import org.apache.commons.lang3.StringUtils;
17-
import org.apache.hc.core5.net.URIBuilder;
1819
import org.prebid.server.bidder.Bidder;
1920
import org.prebid.server.bidder.adgeneration.model.AdgenerationResponse;
2021
import org.prebid.server.bidder.model.BidderBid;
@@ -32,9 +33,10 @@
3233
import org.prebid.server.util.HttpUtil;
3334
import org.prebid.server.util.ObjectUtil;
3435

35-
import java.net.URISyntaxException;
3636
import java.util.ArrayList;
37+
import java.util.HashMap;
3738
import java.util.List;
39+
import java.util.Map;
3840
import java.util.Objects;
3941
import java.util.regex.Pattern;
4042
import java.util.stream.Collectors;
@@ -96,47 +98,43 @@ private ExtImpAdgeneration parseAndValidateImpExt(Imp imp) {
9698
}
9799

98100
private String getUri(String adSize, String id, String currency, BidRequest bidRequest) {
99-
final URIBuilder uriBuilder;
100-
try {
101-
uriBuilder = new URIBuilder(endpointUrl);
102-
} catch (URISyntaxException e) {
103-
throw new PreBidException("Invalid url: %s, error: %s".formatted(endpointUrl, e.getMessage()));
104-
}
105-
106-
uriBuilder
107-
.addParameter("posall", "SSPLOC")
108-
.addParameter("id", id)
109-
.addParameter("hb", "true")
110-
.addParameter("t", "json3")
111-
.addParameter("currency", currency)
112-
.addParameter("sdkname", "prebidserver")
113-
.addParameter("adapterver", VERSION);
114-
115-
addParameterIfNotEmpty(uriBuilder, "sizes", adSize);
116-
addParameterIfNotEmpty(uriBuilder, "tp", ObjectUtil.getIfNotNull(bidRequest.getSite(), Site::getPage));
117-
addParameterIfNotEmpty(uriBuilder, "appbundle", ObjectUtil.getIfNotNull(bidRequest.getApp(), App::getBundle));
118-
addParameterIfNotEmpty(uriBuilder, "appname", ObjectUtil.getIfNotNull(bidRequest.getApp(), App::getName));
119-
addParameterIfNotEmpty(
120-
uriBuilder, "transactionid", ObjectUtil.getIfNotNull(bidRequest.getSource(), Source::getTid));
101+
final UriTemplate uriTemplate = UriTemplate.of(endpointUrl
102+
+ (endpointUrl.contains("?") ? "{&queryParams*}" : "{?queryParams*}"));
103+
final Map<String, String> queryParams = new HashMap<>();
104+
105+
queryParams.put("posall", "SSPLOC");
106+
queryParams.put("id", id);
107+
queryParams.put("hb", "true");
108+
queryParams.put("t", "json3");
109+
queryParams.put("currency", currency);
110+
queryParams.put("sdkname", "prebidserver");
111+
queryParams.put("adapterver", VERSION);
112+
113+
addParameterIfNotEmpty(queryParams, "sizes", adSize);
114+
addParameterIfNotEmpty(queryParams, "tp", ObjectUtil.getIfNotNull(bidRequest.getSite(), Site::getPage));
115+
addParameterIfNotEmpty(queryParams, "appbundle", ObjectUtil.getIfNotNull(bidRequest.getApp(), App::getBundle));
116+
addParameterIfNotEmpty(queryParams, "appname", ObjectUtil.getIfNotNull(bidRequest.getApp(), App::getName));
117+
addParameterIfNotEmpty(queryParams, "transactionid",
118+
ObjectUtil.getIfNotNull(bidRequest.getSource(), Source::getTid));
121119

122120
final Device device = bidRequest.getDevice();
123121
final String deviceOs = device != null ? device.getOs() : null;
124122
if ("android".equals(deviceOs)) {
125-
uriBuilder.addParameter("sdktype", "1");
126-
addParameterIfNotEmpty(uriBuilder, "advertising_id", device.getIfa());
123+
queryParams.put("sdktype", "1");
124+
addParameterIfNotEmpty(queryParams, "advertising_id", device.getIfa());
127125
} else if ("ios".equals(deviceOs)) {
128-
uriBuilder.addParameter("sdktype", "2");
129-
addParameterIfNotEmpty(uriBuilder, "idfa", device.getIfa());
126+
queryParams.put("sdktype", "2");
127+
addParameterIfNotEmpty(queryParams, "idfa", device.getIfa());
130128
} else {
131-
uriBuilder.addParameter("sdktype", "0");
129+
queryParams.put("sdktype", "0");
132130
}
133131

134-
return uriBuilder.toString();
132+
return uriTemplate.expandToString(Variables.variables().set("queryParams", queryParams));
135133
}
136134

137-
private static void addParameterIfNotEmpty(URIBuilder uriBuilder, String parameter, String value) {
135+
private static void addParameterIfNotEmpty(Map<String, String> queryParams, String parameter, String value) {
138136
if (StringUtils.isNotEmpty(value)) {
139-
uriBuilder.addParameter(parameter, value);
137+
queryParams.put(parameter, value);
140138
}
141139
}
142140

src/main/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidder.java

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,13 @@
1717
import com.iab.openrtb.response.Bid;
1818
import io.vertx.core.MultiMap;
1919
import io.vertx.core.http.HttpMethod;
20+
import io.vertx.uritemplate.UriTemplate;
21+
import io.vertx.uritemplate.Variables;
2022
import org.apache.commons.collections4.CollectionUtils;
2123
import org.apache.commons.collections4.ListUtils;
2224
import org.apache.commons.lang3.BooleanUtils;
2325
import org.apache.commons.lang3.ObjectUtils;
2426
import org.apache.commons.lang3.StringUtils;
25-
import org.apache.hc.core5.net.URIBuilder;
2627
import org.prebid.server.bidder.Bidder;
2728
import org.prebid.server.bidder.adnuntius.model.request.AdnuntiusMetaData;
2829
import org.prebid.server.bidder.adnuntius.model.request.AdnuntiusNativeRequest;
@@ -59,7 +60,6 @@
5960
import org.prebid.server.util.ObjectUtil;
6061

6162
import java.math.BigDecimal;
62-
import java.net.URISyntaxException;
6363
import java.time.Clock;
6464
import java.time.OffsetDateTime;
6565
import java.util.ArrayList;
@@ -248,35 +248,33 @@ private List<HttpRequest<AdnuntiusRequest>> createHttpRequests(
248248
}
249249

250250
private String makeEndpoint(BidRequest bidRequest, Boolean noCookies) {
251-
try {
252-
final String gdpr = extractGdpr(bidRequest.getRegs());
253-
final String url = StringUtils.isNotBlank(gdpr) ? euEndpoint : endpointUrl;
251+
final String gdpr = extractGdpr(bidRequest.getRegs());
252+
final String url = StringUtils.isNotBlank(gdpr) ? euEndpoint : endpointUrl;
254253

255-
if (url == null) {
256-
throw new PreBidException("an EU endpoint is required but invalid");
257-
}
254+
if (url == null) {
255+
throw new PreBidException("an EU endpoint is required but invalid");
256+
}
258257

259-
final URIBuilder uriBuilder = new URIBuilder(url)
260-
.addParameter("format", "prebidServer")
261-
.addParameter("tzo", getTimeZoneOffset());
258+
final Map<String, String> queryParams = new HashMap<>();
262259

263-
if (StringUtils.isNotEmpty(gdpr)) {
264-
uriBuilder.addParameter("gdpr", gdpr);
265-
}
260+
queryParams.put("format", "prebidServer");
261+
queryParams.put("tzo", getTimeZoneOffset());
266262

267-
final String consent = extractConsent(bidRequest.getUser());
268-
if (StringUtils.isNotEmpty(consent)) {
269-
uriBuilder.addParameter("consentString", consent);
270-
}
263+
if (StringUtils.isNotEmpty(gdpr)) {
264+
queryParams.put("gdpr", gdpr);
265+
}
271266

272-
if (noCookies || extractNoCookies(bidRequest.getDevice())) {
273-
uriBuilder.addParameter("noCookies", "true");
274-
}
267+
final String consent = extractConsent(bidRequest.getUser());
268+
if (StringUtils.isNotEmpty(consent)) {
269+
queryParams.put("consentString", consent);
270+
}
275271

276-
return uriBuilder.build().toString();
277-
} catch (URISyntaxException | IllegalArgumentException e) {
278-
throw new PreBidException(e.getMessage());
272+
if (noCookies || extractNoCookies(bidRequest.getDevice())) {
273+
queryParams.put("noCookies", "true");
279274
}
275+
276+
return UriTemplate.of(url + (url.contains("?") ? "{&queryParams*}" : "{?queryParams*}"))
277+
.expandToString(Variables.variables().set("queryParams", queryParams));
280278
}
281279

282280
private String getTimeZoneOffset() {

0 commit comments

Comments
 (0)