Безопасность Jetty веб-сервера - PullRequest
12 голосов
/ 16 марта 2011

У меня есть веб-сайт на базе Jetty.

Я хотел бы сделать пароль сайта защищенным (или аналогичным).

Есть ли способ сделать это с помощью одной конфигурации (не касаясь кода).

Вся помощь очень ценится.

Dan

Ответы [ 2 ]

22 голосов
/ 17 марта 2011

Один из способов сделать это - настроить базовую аутентификацию для вашего приложения. Это следует делать только в том случае, если вы используете ssl, но тогда вход без ssl в любом случае небезопасен, так что, я полагаю, у вас это уже есть.

Есть много способов сделать это в Причале, и это только один из них.

Во-первых, вы должны определить область, в которой вы определяете всех пользователей, пароли, роли и т. Д. Настройки по умолчанию в Jetty уже определяют область под названием «Тестовая область». Область определяется в файле /etc/jetty-testrealm.xml. Вы можете использовать это царство или создать новое. Если вы определяете новый, вы можете определить его в том же файле или в отдельном файле. Если вы создаете отдельный файл, не забудьте включить этот файл в файл start.ini.

В /etc/jetty-testrealm.xml есть ссылка на /etc/realm.properties. Здесь вы создаете своих пользователей. Если вы хотите просто использовать тестовую область, не забудьте удалить пользователей по умолчанию, которые уже определены в realm.properties.

Существуют также другие виды реализаций областей, которые используют базу данных для пользовательских данных.

Затем откройте файл /etc/webdefault.xml и добавьте что-то вроде этого внизу:

<security-constraint>
  <web-resource-collection>
    <url-pattern>/*</url-pattern>      <!--The url that should be protected -->
  </web-resource-collection>
  <auth-constraint>
    <role-name>admin</role-name>       <!--The required roles for accessing the url -->
    <role-name>user</role-name>
    <role-name>moderator</role-name>
  </auth-constraint>
</security-constraint>

<login-config>
  <auth-method>BASIC</auth-method>     <!-- Use http basic authentication -->
  <realm-name>Test Realm</realm-name>  <!-- Users are defined in this realm -->
</login-config>
0 голосов
/ 13 мая 2016

Я нашел пример того, что распределение причалов весьма полезно.Чтобы использовать базовую аутентификацию с использованием учетных записей пользователей из текстового файла, загляните в каталог {jetty.home} / demo-base / etc.Скопируйте эти два файла в вашу папку {jetty.base} / etc: realm.properties, test-realm.xml

Jetty не будет правильно загружать эти файлы, если вы не скажете это.Это можно сделать, добавив следующий текст в файл start.ini или любой файл * .ini в папке {jetty.base} /start.d:

# Create and configure the test realm
etc/test-realm.xml
jetty.demo.realm=etc/realm.properties

Наконец, создайте файл web.xml.(если это еще не сделано) и вставьте пример, предоставленный @ sstendal / @ Torsten в их предыдущий ответ.Он использует то же самое реальное имя, что и в примере демо-базы из дистрибутива Jetty, поэтому он должен работать.Перезапустите причал и попробуйте получить доступ к любому из ваших веб-ресурсов.Ваш браузер или клиент должен запросить у вас учетные данные.Например, пользователь / пароль пользователя.

...