mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-02 13:02:49 +01:00
Consistently use HttpHeaders.X_FORWARDED_FOR
This commit is contained in:
committed by
Jon Chambers
parent
7764185c57
commit
e078161e2f
@@ -5,6 +5,7 @@
|
||||
package org.whispersystems.websocket;
|
||||
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.net.HttpHeaders;
|
||||
import com.google.protobuf.UninitializedMessageException;
|
||||
import org.eclipse.jetty.websocket.api.MessageTooLargeException;
|
||||
import org.eclipse.jetty.websocket.api.RemoteEndpoint;
|
||||
@@ -201,7 +202,7 @@ public class WebSocketResourceProvider<T extends Principal> implements WebSocket
|
||||
|
||||
@VisibleForTesting
|
||||
static boolean shouldIncludeRequestMessageHeader(final String header) {
|
||||
return !"X-Forwarded-For".equalsIgnoreCase(header.trim());
|
||||
return !HttpHeaders.X_FORWARDED_FOR.equalsIgnoreCase(header.trim());
|
||||
}
|
||||
|
||||
private void handleResponse(WebSocketResponseMessage responseMessage) {
|
||||
|
||||
@@ -6,6 +6,7 @@ package org.whispersystems.websocket;
|
||||
|
||||
import static java.util.Optional.ofNullable;
|
||||
|
||||
import com.google.common.net.HttpHeaders;
|
||||
import io.dropwizard.jersey.jackson.JacksonMessageBodyProvider;
|
||||
import java.io.IOException;
|
||||
import java.security.Principal;
|
||||
@@ -90,7 +91,7 @@ public class WebSocketResourceProviderFactory<T extends Principal> extends WebSo
|
||||
}
|
||||
|
||||
private String getRemoteAddress(ServletUpgradeRequest request) {
|
||||
String forwardedFor = request.getHeader("X-Forwarded-For");
|
||||
String forwardedFor = request.getHeader(HttpHeaders.X_FORWARDED_FOR);
|
||||
|
||||
if (forwardedFor == null || forwardedFor.isBlank()) {
|
||||
return request.getRemoteAddress();
|
||||
|
||||
@@ -653,13 +653,13 @@ class WebSocketResourceProviderTest {
|
||||
assertThat(WebSocketResourceProvider.shouldIncludeUpgradeRequestHeader("Connection")).isFalse();
|
||||
assertThat(WebSocketResourceProvider.shouldIncludeUpgradeRequestHeader("Sec-WebSocket-Key")).isFalse();
|
||||
assertThat(WebSocketResourceProvider.shouldIncludeUpgradeRequestHeader(HttpHeaders.USER_AGENT)).isTrue();
|
||||
assertThat(WebSocketResourceProvider.shouldIncludeUpgradeRequestHeader("X-Forwarded-For")).isTrue();
|
||||
assertThat(WebSocketResourceProvider.shouldIncludeUpgradeRequestHeader(HttpHeaders.X_FORWARDED_FOR)).isTrue();
|
||||
assertThat(WebSocketResourceProvider.shouldIncludeUpgradeRequestHeader("X-Signal-Receive-Stories")).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testShouldIncludeRequestMessageHeader() {
|
||||
assertThat(WebSocketResourceProvider.shouldIncludeRequestMessageHeader("X-Forwarded-For")).isFalse();
|
||||
assertThat(WebSocketResourceProvider.shouldIncludeRequestMessageHeader(HttpHeaders.X_FORWARDED_FOR)).isFalse();
|
||||
assertThat(WebSocketResourceProvider.shouldIncludeRequestMessageHeader(HttpHeaders.USER_AGENT)).isTrue();
|
||||
assertThat(WebSocketResourceProvider.shouldIncludeRequestMessageHeader("X-Signal-Receive-Stories")).isTrue();
|
||||
}
|
||||
@@ -673,16 +673,16 @@ class WebSocketResourceProviderTest {
|
||||
"Sec-WebSocket-Key", List.of("dGhlIHNhbXBsZSBub25jZQ=="),
|
||||
"Sec-WebSocket-Protocol", List.of("chat, superchat"),
|
||||
"Sec-WebSocket-Version", List.of("13"),
|
||||
"X-Forwarded-For", List.of("127.0.0.1"),
|
||||
HttpHeaders.X_FORWARDED_FOR, List.of("127.0.0.1"),
|
||||
HttpHeaders.USER_AGENT, List.of("Upgrade request user agent"));
|
||||
|
||||
final Map<String, String> requestMessageHeaders = Map.of(
|
||||
"X-Forwarded-For", "192.168.0.1",
|
||||
HttpHeaders.X_FORWARDED_FOR, "192.168.0.1",
|
||||
HttpHeaders.USER_AGENT, "Request message user agent");
|
||||
|
||||
final Map<String, List<String>> expectedHeaders = Map.of(
|
||||
"Host", List.of("server.example.com"),
|
||||
"X-Forwarded-For", List.of("127.0.0.1"),
|
||||
HttpHeaders.X_FORWARDED_FOR, List.of("127.0.0.1"),
|
||||
HttpHeaders.USER_AGENT, List.of("Request message user agent"));
|
||||
|
||||
assertThat(WebSocketResourceProvider.getCombinedHeaders(upgradeRequestHeaders, requestMessageHeaders)).isEqualTo(
|
||||
|
||||
Reference in New Issue
Block a user