DynamoHttpServletRequest.getRemotePort() возвращает 0, как получить порт повторной отправки клиента

#java #servlets #request #atg #atg-dynamo

#java #сервлеты #запрос #atg #atg-динамо

Вопрос:

Мне нужен удаленный порт клиента для некоторой проверки. Я попытался получить удаленный порт в запросе, но результат показал только ноль 0. Я видел, что класс OOTB DynamoHttpServletRequest по умолчанию возвращает ноль любым способом, чтобы получить удаленный порт клиента.

В классе OOTB DynamoHttpServletRequest возвращает

 public int getRemotePort() {
    return 0;
}
  

Есть ли какая-либо возможность получить удаленный порт?
Любые альтернативные способы получения удаленного порта клиента?

Комментарии:

1. DynamoHttpServletRequest предоставляет доступ к серверной реализации HttpServletRequest (методом GetRequest()). Вы пробовали получить доступ к удаленному порту напрямую оттуда?

2. спасибо, теперь я получил удаленный порт клиента. После попытки этого DynamoHttpServletRequest.GetRequest().getRemotePort() я понял.

3. @pantuptus у меня есть небольшое уточнение, есть ли какая-либо возможность получить постоянный удаленный порт для клиента. он выглядит как сеанс, если пользователь заходит на сайт, браузер создает клиентский порт, который порт уничтожается только тогда, когда пользователь закрывает соединение, пока мне не понадобится тот же порт для запроса отверстия (не при каждом изменении порта времени ответа на запрос). есть ли какие-либо возможности?

4. Я не понял вашего вопроса. Вы разрабатываете на стороне клиента или на стороне сервера? Если на стороне сервера, то это не ваша задача влиять на порт, который запрашивает у вас клиент.

5. @pantuptus я пытаюсь выполнить некоторый токен проверки в целях безопасности, чтобы боты не создавали запрос. Я создаю токен с клиентским портом и устанавливаю в сеансе только после некоторого запроса, я получаю порт клиента, и клиентский порт, установленный сеансом, также означает проверку допустимости запроса.

Ответ №1:

Я получил справку по удаленному порту реализованного класса HttpServletRequest.

 public int getClientPort(DynamoHttpServletRequest req){ 
    int remortPortVal = req.getRequest().getRemotePort();
    return remortPortVal;
}