spring.h2.console.settings.web-allow-others у меня не работает отключение доступа - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь установить spring.h2.console.settings.web-allow-others = false, чтобы консоль была доступна только на локальном компьютере.Это прекрасно работает, если я запускаю свое приложение в IntelliJ, но как только я создаю jar и запускаю его, этот параметр, кажется, не имеет никакого эффекта и по умолчанию включен.

Я не думаю, что у меня есть какие-либо параметрыпри передаче в банку при запуске, но мне интересно, может ли что-то еще переопределить эти настройки.

Итак, в моем application.properties есть следующее.

# H2
spring.h2.console.enabled=true
spring.h2.console.path=/h2
#spring.h2.console.settings.web-allow-others=true

Как в этом примерепоказывает, что он закомментирован, и я ожидаю, что по умолчанию будет false.Я попытался раскомментировать и установить значение false, но безрезультатно.Я попытался использовать стандартное значение конфигурации H2 webAllowOthers, но безрезультатно.

Если я установил spring.h2.console.enabled = false, я больше не смогу получить доступ к консоли.Я чувствую, что это показывает, что я по крайней мере редактирую правильный файл.

У меня есть дополнительный test.properties, используемый в наших тестовых примерах, но я попытался установить значение false и удалить также в этом файле.Я думал, что это может быть последним в победах или что-то в этом роде.

Я не могу попробовать другие вещи, моя единственная мысль - это ошибка или какой-то другой конфиг, который может переопределить эти настройки.

Я использую SpringBoot 2.0.0.RELEASE AND dB2 1.4.196

ОБНОВЛЕНИЕ: После дальнейшего тестирования кажется, что все работает нормально, если я соберу jar и у меня будет включена консоль и отключены web-allow-others,Но как только я включил web-allow-others один раз, он никогда не блокирует его снова, даже после того, как web-allow-others = false

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Это меня тоже разочаровало.

Похоже, что при успешном входе в консоль H2 сохраняет настройки в локальном «файле настроек».Для моей системы Linux этот файл был $ HOME / .h2.server.properties.

В этом файле было записано «webAllowOthers = true», которое, похоже, имеет приоритет над любыми файлами application.properties.

После удаления файла все заработало как положено, соблюдая настройки application.properties.

0 голосов
/ 29 августа 2018

Добавьте бин ниже в ваш код и откройте http://remoteIp:8080/, и он будет работать

    @Bean(initMethod="start",destroyMethod="stop")
public org.h2.tools.Server h2WebConsoleServer () throws SQLException {
    return org.h2.tools.Server.createWebServer("-web","-webAllowOthers","-webDaemon","-webPort", "8080");
}
...