2012-05-26 1 views
1

мне нужно запустить приложение Java (не апплет или JNLP, но полномасштабная приложения в JRE) и нужны некоторые ограничения на:Запуск локального приложения Java с файловой системой и порта ограничения

  1. Файл Система. Приложение может получить доступ только к 1 папке для чтения & write (это был бы фиксированный путь для ссылки приложения, например /).

  2. Порты. Приложение может иметь доступ только к нескольким локальным портам. (например, можно было получить доступ только к порту 8080/3306)

Есть ли способ сделать это? Я искал в Java Security & Политики, но не приблизился к решению.

Я планирую написать контейнер для запуска этого приложения или изменения/переопределения классов (в случае OpenJDK). Это нормально?

Это для проекта с открытым исходным кодом, который мы собираемся начать, оцените некоторые полезные советы от мудрого сообщества StackExchange.

рассматривает

ответ

2

Первое и самое основное, запустить приложение Java с пользователем, который имеет минимальные разрешения, необходимые для приложения, чтобы сделать свою работу.

Во-вторых, установите java SecurityManager и настройте его.

+0

Thx для вас ответ. Идея состоит в том, чтобы заставить приложение только читать и писать 1 папку, поэтому ее очень безопасно, так как любые папки пользователей, например документы, недоступны этому приложению. Kinda a Jailed App. – Araejay

1

SJuan76 имеет правильный ответ здесь. SecurityManager - это подходящий способ ограничить файлы/каталоги, к которым может обратиться приложение Java. This tutorial может быть хорошим руководством по настройке этого.

Вы можете ограничить порты, которые прослушивает приложение java. Но ограничение портов действительно требует настройки брандмауэра уровня OS.

+1

Спасибо за ответ, я нахожу Security Manager flaky для этого типа приложений, которые мы делаем (я должен был подробно описать это ранее) – Araejay

+1

Я полагаю, что вмешательство с Classloaders должно быть вариантом ограничения порта? – Araejay

Смежные вопросы