Полагаю, было бы полезно, если бы я мог заставить http-сервер быть доступным только для localhost.
Экземпляр HttpServer прослушивает запросы (только) по IP-адресу, с которым он связан.Поэтому свяжите его с IP-адресом обратной петли, например:
InetAddress localHost = InetAddress.getLoopbackAddress();
InetSocketAddress sockAddr = new InetSocketAddress(localHost, 80);
HttpServer server = HttpServer.create(sockAddr, 0);
В более общем случае, если вы хотите принимать запросы только от определенного набора IP-адресов, одним из подходов будет вызов HttpExchange::getRemoteAddress
в вашем обработчикеи действовать соответствующим образом, если удаленный адрес не тот, который вы хотите.Но имейте в виду, что удаленный адрес будет непосредственным восходящим IP-адресом.Это может быть ваш обратный прокси-сервер или какой-либо прямой прокси-сервер, используемый удаленным пользователем.