Я написал сервлет на Java и хотел бы знать, был ли выполнен запрос к этому сервлету с использованием HTTP или HTTPS.
Я думал, что могу использовать request.getProtocol(), но он возвращает HTTP / 1.1 на обоихметоды.
request.getProtocol()
Есть идеи?
HttpSerlvetRequest.isSecure () - это ответ. ServletContainer отвечает за возвращение true в следующих случаях:
Контейнер должен также сделать атрибуты этого запроса доступными при получении запроса на https :
Вы не можете надежно зависеть от номеров портов. Но вы можете зависеть от схемы:
Использование: request.getScheme () , чтобы увидеть, если это https.
https
Если это так, то это безопасное соединение.
Я считаю, что это должно работать независимо от версии Tomcat
isSecure . Обязательно проверьте унаследованные методы.
https и http работает на разных портах.Таким образом, вы можете получить порт из запроса и узнать, с какого порта поступил запрос, и узнать протокол.int port = request.getServerPort ();