Spring boot x-forwarded-for не найден в HttpServletRequest - PullRequest
0 голосов
/ 01 мая 2020

У меня есть какое-то весеннее приложение, в котором мне нужно получить IP-адрес x-forwarded-for для некоторой проверки. Я использовал ниже код

    import javax.servlet.http.HttpServletRequest;

    RequestContext ctx = RequestContext.getCurrentContext();
    HttpServletRequest request = ctx.getRequest();

        StringBuilder webLog = new StringBuilder();
         Enumeration<String> headerNames = request.getHeaderNames();    

        if (headerNames != null) {
            while (headerNames.hasMoreElements()) {
                webLog.append(" ");
                webLog.append(request.getHeader(headerNames.nextElement()));

            }

        logger.info(log.toString());    

Сообщение в журнале: -

2020-05-01T12:50:09,290 INFO  c.j.w.i.myapp [15] [http-nio-8766-exec-2]  59.160.128.59:8861 keep-alive 187 application/json, text/plain, */* http://10.160.208.57:8080 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36 application/json http://59.160.128.59:8080/user/ gzip, deflate en-US,en;q=0.8http://59.160.128.59:8861/user/info

I я вижу, как Катлина печатает журнал отладки x-forwarded-for,

2020-05-01T12:50:09,290 DEBUG [http-nio-8761-exec-2] o.a.h.i.c.Wire: http-outgoing-0 >> "x-forwarded-host: 59.160.128.59:8861[\r][\n]"
2020-05-01T12:50:09,291 DEBUG [http-nio-8761-exec-2] o.a.h.i.c.Wire: http-outgoing-0 >> "x-forwarded-proto: http[\r][\n]"
2020-05-01T12:50:09,291 DEBUG [http-nio-8761-exec-2] o.a.h.i.c.Wire: http-outgoing-0 >> "x-forwarded-port: 8761[\r][\n]"
2020-05-01T12:50:09,291 DEBUG [http-nio-8761-exec-2] o.a.h.i.c.Wire: http-outgoing-0 >> "x-forwarded-for: 59.20.83.49[\r][\n]"

Но в моем журнале микросервисов я вижу этот oahi c .Wire имеет "x-forwarded-for: 59.20.83.49 [ \ r] [\ n] ", так как это получить?

...