I am trying to config a reverse proxy server to call a third party, our access is limited to special Ip but when I call the proxy server the server pass client Ip to third party server.
I tried to fetch Ip addresses with a spring application and I got that spring getRemoteAddr is using something else than X-Forwarded-For.
I am looking for a way to get manipulated Ip in HttpServletRequest.getRemoteAddr()
Nginx config:
server {
    listen      80;
    server_name _;
    location / {
        real_ip_header X-Forwarded-For;
        proxy_set_header  X-Forwarded-For '192.168.1.1';   
        proxy_set_header X-Real-IP '192.168.1.1'; 
        proxy_pass http://192.168.30.31:8080;
    }
}
Spring Controller:
@RestController
public class TestController {
    @RequestMapping("/")
    public String getIp(HttpServletRequest request) {
        return "getRemoteAddr: " + request.getRemoteAddr() +
                "\ngetRemoteHost: " + request.getRemoteHost() +
                "\nX-Forwarded-For: " + request.getHeader("X-Forwarded-For");
    }
}
Result
getRemoteAddr: 192.168.99.219 //expected 192.168.1.1
getRemoteHost: 192.168.99.219
X-Forwarded-For: 192.168.1.1
