Отключить или скрыть приложение ejb-timer-service-app на Glassfish / Payara

При запуске стандартного сервера Glassfish или Payara по умолчанию развернуто приложение под названием "ejb-timer-service-app", которое включает веб-интерфейс по адресу http://localhost:8080/ejb-timer-service-app/timer

введите здесь описание изображения

Дополнительная информация здесь: https://docs.oracle.com/cd/E18930_01/html/821-2418/beahw.html

К сожалению, интерфейс недоступен через защищенную консоль администратора (порт 4848), а через главный хост (порт 8080 и 8181). Таким образом, все, кто знает URL моего сервера, могут получить доступ к этой странице.

Есть ли способ деактивировать приложение (а не саму службу ejb-timer) или, по крайней мере, сделать веб-страницу недоступной (скрыть ее) без каких-либо причудливых конфигураций брандмауэра или балансировщика нагрузки?


person Dennis Kriechel    schedule 26.07.2017    source источник


Ответы (1)


Видимо на данный момент нет возможности отключить приложение из коробки. Я запросил новые функции для payara на github: https://github.com/payara/Payara/issues/1803

Поскольку ejb-timer-service-app.war требуется серверу приложений для предоставления службы таймера EJB, его нельзя удалить.

Однако я создал обходной путь, чтобы хотя бы отключить часть внешнего интерфейса:

Я провел несколько быстрых локальных тестов, чтобы узнать, как удалить интерфейс, не повредив службу таймера EJB. Вот что я изменил внутри ${PAYARA_HOME}/glassfish/lib/install/applications/ejb-timer-service-app.war:

Удалить файл WEB-INF\sun-web.xml
Удалить файл WEB-INF\web.xml
Удалить папку WEB-INF\classes\com

Команды оболочки:

zip -d ejb-timer-service-app.war "WEB-INF/sun-web.xml"
zip -d ejb-timer-service-app.war "WEB-INF/web.xml"
zip -d ejb-timer-service-app.war "WEB-INF/classes/com/*"

Если домен был запущен раньше, вам также необходимо удалить папку glassfish\domains\domain1\applications\ejb-timer-service-app, чтобы очистить уже развернутый интерфейс.

После домена перезапустите сервлет на http://localhost:8080/ejb-timer-service-app/timer больше не доступен (HTTP 404), но таймеры EJB работают правильно

person Dennis Kriechel    schedule 26.07.2017