Подтвердить что ты не робот

Как защитить Jetty только для обеспечения доступа из loopback (localhost)

Как я могу защитить jetty, чтобы разрешать подключения только с localhost? Это означает, что соединение с сервером A на Системе А от Клиента B на Системе B, должен потерпеть неудачу. Я знаю, что могу это сделать, настроив свой брандмауэр (так что, пожалуйста, никаких ответов об этом). Я просто хочу, чтобы Jetty слушал только локальный хост (loopback).

4b9b3361

Ответ 1

Я не пробовал это, но обычным методом является привязка сервера к localhost (т.е. к IP 127.0.0.1). Это означает, что сервер Jetty будет прослушивать только те соединения, у которых в качестве адреса назначения есть localhost.

Быстрый поиск в Google показал http://old.nabble.com/How-to-make-Jetty-bind-to-specific-IP-address---to11667378.html#a11669524:

добавьте эту запись в SelectChannelConnector, например:

<Set name="Host">127.0.0.1</Set>

Ответ 2

Я сам нашел ответ на свой вопрос после немного более googling.

Ответ: (Проверено на причал-распределение-7.0.1.v20091125):

  • Найдите файл jetty.xml(etc/jetty.xml)
  • Искать <Call name="addConnector">
  • Установите <Set name="Host"><SystemProperty name="jetty.host" default="127.0.0.1"/></Set> перед строкой <Set name="port"><SystemProperty name="jetty.port"/></Set>
  • Что это. Перезагрузите сервер причала (java -jar start.jar). Сервер должен выводить что-то вроде:

2009-12-23 23: 02: 09.291: INFO:: Начало [email protected]: 8080

Импорт заключается в том, что он должен сказать 127.0.0.1 вместо 0.0.0.0, 0.0.0.0 означает прослушивание всех ips на машине.

P.S: Я хотел защитить apache solr (который используя причал), который может быть достигнут в Таким же образом.

Вы также можете связать с localhost программным способом (embed jetty) с помощью:

Server server = new Server();
Connector connector = new SelectChannelConnector();
connector.setHost("localhost");
connector.setPort(80);
server.addConnector(connector);

Ответ 3

Вы можете установить свойство jetty.host во время запуска виртуальной машины:

java -Djetty.host=127.0.0.1 -jar start.jar

Btw одинаково для jetty.port.

Ответ 4

Для встроенного Jetty 9 этот код работает.

    Server server = new Server();                                       
    ServerConnector connector=new ServerConnector(server);
    connector.setPort(80);
    connector.setHost("localhost");        
    server.setConnectors(new Connector[]{connector});