Вызывающий адрес конечной точки сервера и адрес перенаправления, возвращающие другой IP-адрес - PullRequest
1 голос
/ 07 июня 2019

У меня есть два сервера с другим доменом.

Сервер 2: IP-адрес 200.200.200.200 (twohundred.com)

Сервер 1: IP-адрес 100.100.100.100 (onehundred.com)

Я делаю запрос API отдыха с сервера2 на сервер1. В server1 у меня есть конечная точка Java с именем / validate . С этой конечной точки я делаю запрос к / verify конечной точке, размещенной на том же сервере.

@RequestMapping(value = "/validate", method = { RequestMethod.POST })
public String validateAndRedirect(HttpServletRequest request, 
    HttpServletResponse response) throws JSONException, IOException {
    Url url = "https://onehundred.com/verify?queryParam=123";
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestMethod("POST");
    con.setDoOutput(true);

    response.sendRedirect("https://onehundred.com/successful/message");
}

Если запрос отправляется из браузера в / для проверки конечной точки и из их, если я перенаправляю в / проверяю, можно ли перенаправить с адреса сервера.

1 Ответ

1 голос
/ 07 июня 2019

Это происходит потому, что sendRedirect отправит клиенту код перенаправления, а клиент сделает еще один http-вызов на сервер.

Итак, если вы хотите фактический IP-адрес сервера, вам нужно сделать HTTP-вызов с server 1 сам.

Чтобы решить эту проблему, просто сделайте то же самое для https://onehundred.com/successful, что вы сделали для https://onehundred.com/verify?queryParam=123 API, проанализируйте ответ API успеха и отобразите его в текущем API (/validate).

Здесь в этом случае запрос, сделанный server 1, не отправит запрос перенаправления клиенту.

Извините за английский

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...