Надежное обнаружение локальных клиентов на стороне сервера - PullRequest
1 голос
/ 24 октября 2019

Я создаю веб-сервер Java в Карафе. Я хотел бы знать, происходит ли http-вызов с той же машины (= локально) или нет. Заголовки Http, такие как Referer и Host, помогают мне в этом отношении.

Стратегия заключается в том, чтобы видеть, читает ли отображаемый URL в заголовках localhost или нет.

Каковы опасности этого подхода? И есть ли более безопасный способ?

1 Ответ

1 голос
/ 31 октября 2019

Как указал amon в своем комментарии, надежным методом будет использование javax.servlet.http.HttpServletRequest.

import javax.ws.rs.core.Context;
import javax.servlet.http.HttpServletRequest; 

для вставки запроса HttpServletRequest в ваш кодиспользуя контекстную аннотацию:

@Context private HttpServletRequest req;

Затем используйте объект, чтобы получить адрес от одного из двух:

LOG.info("{}", req.getRemoteHost());
LOG.info("{}", req.getRemoteAddr());

Этот ответ помог мне с подробностями.

...