From ecf5113e0e4e22ca57165f1ab6482d47df6d5c0c Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Thu, 28 Jan 2021 20:45:09 +0000 Subject: [PATCH] Handle forwarded header parse issues Closes gh-26459 --- .../web/server/adapter/HttpWebHandlerAdapter.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java b/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java index 0227b0a684c..76cae291786 100644 --- a/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java +++ b/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2020 the original author or authors. + * Copyright 2002-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -228,7 +228,16 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa @Override public Mono handle(ServerHttpRequest request, ServerHttpResponse response) { if (this.forwardedHeaderTransformer != null) { - request = this.forwardedHeaderTransformer.apply(request); + try { + request = this.forwardedHeaderTransformer.apply(request); + } + catch (Throwable ex) { + if (logger.isDebugEnabled()) { + logger.debug("Failed to apply forwarded headers to " + formatRequest(request), ex); + } + response.setStatusCode(HttpStatus.BAD_REQUEST); + return response.setComplete(); + } } ServerWebExchange exchange = createExchange(request, response);