Seleccionar página

Vamos a explicar como parchear el undertow del wildfly 10.1.0 que se usa como balanceador (con modcluster) para que en nuestra aplicación salga la Ip real del cliente.

Ante esta situación:

CLIENTE(10.2.10.61) – NGINX(10.0.210.5) – WILDFLY/LB(10.0.210.34) – WILDFLY/APP(10.0.210.33)

Ahora nos salia esto:
10.0.210.34 forwarded for 10.0.210.5

Esto lo tienen preparado en el código de Undertow pero no es configurable, por eso hay que parchearlo.
Se ha parcheado para que resuse el X-Forwarded-For al usar el modcluster como balanceador:

diff –git a/core/src/main/java/io/undertow/server/handlers/proxy/ProxyHandler.java b/core/src/main/java/io/undertow/server/handlers/proxy/ProxyHandler.java
index f479029..aeb8c27 100644
— a/core/src/main/java/io/undertow/server/handlers/proxy/ProxyHandler.java
+++ b/core/src/main/java/io/undertow/server/handlers/proxy/ProxyHandler.java
@@ -121,7 +121,7 @@
private final int maxConnectionRetries;

public ProxyHandler(ProxyClient proxyClient, int maxRequestTime, HttpHandler next) {
–        this(proxyClient, maxRequestTime, next, false, false);
+        this(proxyClient, maxRequestTime, next, false, true);
}

/**

Y ahora sale asi:

10.0.210.34 forwarded for 10.2.10.61,10.0.210.5

Siendo la IP 10.2.10.61 la IP real del cliente.

Share