Задача
В рамках моего веб приложения надо умудриться задеплоить еще один war, на котором будет работать какой-то сервлет. Поскольку этот war - это стороннее веб приложение, то надо запретить ему доступ к файловой системе, открытие сокетов и тем более вызывать System.exit.Подобная задача легко решается в OSGi контейнере (пример на OSGi тут). Но у меня Jetty и необходимо очень
Предположим в этом "левом" веб-приложении какой-нибудь умник решил проверить систему на прочность и написал такой код:
Естественно, что при вызове сервлета System.exit сделает свое дело и погасит мой сервер.
Деплоим стороннее веб приложение
Прежде всего надо убедиться, что модули jetty-webapp и jetty-server подключены к проекту. У меня версия Jetty 8.1.3.v20120416Дальше пишем код деплоймента веб архива в Jetty
Если задеплоить этот код в любой web container, то как только мы дернем страничку из браузера, то все...
Настраиваем Java security manager
Самый тупой способ, который я нашел - это подставить свою реализацию java.security.policy:Надо обратить внимание на, что Policy надо устанавливать ДО того, как переопределить SecurityManager, иначе не хватит прав для установки новой Policy :)
No comments:
Post a Comment