Почему консоль H2 в Spring Boot показывает пустой экран после входа в систему?

Я использую Spring Boot 1.4.1 с базой данных H2. Я включил консоль H2, как описано в справочном руководстве , добавив следующие строки в файл application.properties:

spring.h2.console.enabled=true
spring.h2.console.path=/h2

Когда я перехожу на консоль H2 в Chrome 53 для Windows, я вижу страницу входа и нажатие кнопки "Test Connection" приводит к "Тест успешно":

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

Но когда я нажимаю кнопку "Подключиться", экран становится совершенно пустым. Когда я просматриваю источник, я вижу "Извините, Lynx еще не поддерживается" (см. полный источник). То же самое происходит в Firefox.

Почему это происходит? Я считаю, что я использую правильный URL JDBC, так как 4 разных человека размещены на этом вопросе, что вы должны использовать jdbc:h2:mem:testdb.

Ответ 1

Согласно сообщению в блоге, необходимо добавить строку configure метода класса SecurityConfig, если у вас есть зависимость spring-boot-starter-security в вашем проекте, иначе вы увидите пустую страницу после входа в консоль H2:

http.headers().frameOptions().disable();

Я добавил эту строку и решил проблему.

В качестве альтернативы можно использовать следующую строку (как упоминалось здесь):

http.headers().frameOptions().sameOrigin();

Ответ 2

Я могу решить ту же проблему, используя следующий код в моем классе SecurityConfig

@Override
protected void configure(HttpSecurity http) throws Exception {
    bla();
    bla();   
    http.headers().frameOptions().sameOrigin();
}

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

Ответ 3

Добавьте это в свой application.properties

 security.headers.frame=false