Skip to content

Commit 3b5c276

Browse files
committed
Merge branch 'refs/heads/get-interface' into functional-tests/general-get-interface
2 parents bb42e74 + ee43d85 commit 3b5c276

2 files changed

Lines changed: 14 additions & 4 deletions

File tree

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.Arrays;
1313
import java.util.List;
1414
import java.util.Objects;
15+
import java.util.Optional;
1516
import java.util.function.Function;
1617

1718
/**
@@ -72,12 +73,13 @@ public List<String> ipFrom(MultiMap headers, String host) {
7273

7374
private List<String> ipFrom(Function<String, String> headerGetter, String host) {
7475
final List<String> candidates = new ArrayList<>();
75-
candidates.add(headerGetter.apply("True-Client-IP"));
76-
final String xff = headerGetter.apply("X-Forwarded-For");
76+
candidates.add(headerGetter.apply(HttpUtil.TRUE_CLIENT_IP_HEADER.toString()));
77+
final String xff = headerGetter.apply(HttpUtil.X_FORWARDED_FOR_HEADER.toString());
7778
if (xff != null) {
7879
candidates.addAll(Arrays.asList(xff.split(",")));
7980
}
80-
candidates.add(headerGetter.apply("X-Real-IP"));
81+
candidates.add(headerGetter.apply(HttpUtil.X_REAL_IP_HEADER.toString()));
82+
candidates.add(headerGetter.apply(HttpUtil.X_DEVICE_IP_HEADER.toString()));
8183
candidates.add(host);
8284

8385
return candidates.stream()
@@ -90,7 +92,12 @@ private List<String> ipFrom(Function<String, String> headerGetter, String host)
9092
* Determines User-Agent by checking 'User-Agent' http header.
9193
*/
9294
public String uaFrom(HttpRequestContext request) {
93-
return StringUtils.trimToNull(request.getHeaders().get(HttpUtil.USER_AGENT_HEADER));
95+
return Optional.ofNullable(getTrimmedHeader(request, HttpUtil.USER_AGENT_HEADER))
96+
.orElseGet(() -> getTrimmedHeader(request, HttpUtil.X_DEVICE_USER_AGENT_HEADER));
97+
}
98+
99+
private static String getTrimmedHeader(HttpRequestContext request, CharSequence header) {
100+
return StringUtils.trimToNull(request.getHeaders().get(header));
94101
}
95102

96103
/**

src/main/java/org/prebid/server/util/HttpUtil.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,10 @@ public final class HttpUtil {
4040
HttpHeaderValues.APPLICATION_JSON + ";" + HttpHeaderValues.CHARSET + "="
4141
+ StandardCharsets.UTF_8.toString().toLowerCase();
4242

43+
public static final CharSequence TRUE_CLIENT_IP_HEADER = HttpHeaders.createOptimized("True-Client-Ip");
4344
public static final CharSequence X_FORWARDED_FOR_HEADER = HttpHeaders.createOptimized("X-Forwarded-For");
4445
public static final CharSequence X_REAL_IP_HEADER = HttpHeaders.createOptimized("X-Real-Ip");
46+
public static final CharSequence X_DEVICE_IP_HEADER = HttpHeaders.createOptimized("X-Device-Ip");
4547
public static final CharSequence DNT_HEADER = HttpHeaders.createOptimized("DNT");
4648
public static final CharSequence ORIGIN_HEADER = HttpHeaders.createOptimized("Origin");
4749
public static final CharSequence ACCEPT_HEADER = HttpHeaders.createOptimized("Accept");
@@ -53,6 +55,7 @@ public final class HttpUtil {
5355
public static final CharSequence X_REQUESTED_WITH_HEADER = HttpHeaders.createOptimized("X-Requested-With");
5456
public static final CharSequence REFERER_HEADER = HttpHeaders.createOptimized("Referer");
5557
public static final CharSequence USER_AGENT_HEADER = HttpHeaders.createOptimized("User-Agent");
58+
public static final CharSequence X_DEVICE_USER_AGENT_HEADER = HttpHeaders.createOptimized("X-Device-User-Agent");
5659
public static final CharSequence COOKIE_HEADER = HttpHeaders.createOptimized("Cookie");
5760
public static final CharSequence SEC_COOKIE_DEPRECATION =
5861
HttpHeaders.createOptimized("Sec-Cookie-Deprecation");

0 commit comments

Comments
 (0)