Skip to content

Commit a132b58

Browse files
committed
Fix #34085: ignore non-valid headers
1 parent fe03b26 commit a132b58

1 file changed

Lines changed: 14 additions & 1 deletion

File tree

  • src/main/java/eu/openanalytics/containerproxy/model/runtime/runtimevalues

src/main/java/eu/openanalytics/containerproxy/model/runtime/runtimevalues/HttpHeaders.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,33 @@
2424
import com.fasterxml.jackson.annotation.JsonValue;
2525
import io.undertow.util.HeaderMap;
2626
import io.undertow.util.HttpString;
27+
import org.slf4j.Logger;
28+
import org.slf4j.LoggerFactory;
2729

30+
import java.nio.charset.CharsetEncoder;
31+
import java.nio.charset.StandardCharsets;
32+
import java.util.HashMap;
2833
import java.util.Map;
2934

3035
public class HttpHeaders {
3136

3237
private final HeaderMap undertowHeaderMap = new HeaderMap();
3338
private final Map<String, String> headers;
3439

40+
private final static Logger logger = LoggerFactory.getLogger(HttpHeaders.class);
41+
3542
@JsonCreator
3643
public HttpHeaders(Map<String, String> headers) {
37-
this.headers = headers;
44+
Map<String, String> filteredHeaders = new HashMap<>();
3845
for (Map.Entry<String, String> header : headers.entrySet()) {
46+
if (!StandardCharsets.ISO_8859_1.newEncoder().canEncode(header.getValue())) {
47+
logger.warn("Header '{}' with value '{}', contains non ISO-8859-1/ISO-Latin-1 characters, not adding header.", header.getKey(), header.getValue());
48+
continue;
49+
}
3950
undertowHeaderMap.put(new HttpString(header.getKey()), header.getValue());
51+
filteredHeaders.put(header.getKey(), header.getValue());
4052
}
53+
this.headers = filteredHeaders;
4154
}
4255

4356
public HeaderMap getUndertowHeaderMap() {

0 commit comments

Comments
 (0)