H2-Console не отображается в браузере

Я работаю над SpringBoot api и использую базу данных H2 со следующими настройками свойств.

spring.h2.console.enabled=true
spring.datasource.name=test
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.datasource.initialization-mode = embedded
spring.datasource.url=jdbc:h2:mem:test
spring.jpa.hibernate.ddl-auto = update

Когда я хочу использовать браузер для просмотра консоли базы данных H2 через «http: // localhost: 8082 / h2-консоль», в браузере открывается экран с кнопкой подключения и проверки подключения. Когда я нажимаю на Test Connection, оно возвращается успешно, но когда я нажимаю кнопку Connect, появляется ошибка, из-за которой localhost отказался подключиться.

H2-Console не отображается в браузере

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

pacoverflow 11.10.2021 18:36
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
42
1
29 809
4

Ответы 4

Помимо ответа @ Alien, мне также пришлось добавить http.csrf().disable();.

добавьте эти две строки в свой весенний файл безопасности, и все готово.

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

Добавлена ​​следующая строка one application.properties

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

spring.h2.console.enabled=true

А также добавил следующее на pom.xml

<build>
  <plugins>
    <plugin>
      <configuration>
        <jdbc>
          <driver>org.h2.Driver</driver>
          <url>jdbc:h2:~/test</url>
        </jdbc>
      </configuration>
    </plugin>
  </plugins>
<build>

По умолчанию Spring Security отключает рендеринг в iframe, потому что разрешение добавления веб-страницы во фрейм может быть проблемой безопасности, например Кликджекинг. Поскольку консоль H2 работает внутри кадра, поэтому, пока включена безопасность Spring, параметры кадра должны быть явно отключены, чтобы консоль H2 заработала.

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

В общем, есть две возможные директивы для X-Frame-Опции: DENY или SAMEORIGIN, поэтому следующая конфигурация также может использоваться для ограниченного, но защищенного доступа.

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

Это позволяет отображать страницу во фрейме в том же источнике, что и сама страница.

Ваш ответ самый полный и безопасный. Спасибо!

Pixel-Killer 17.02.2021 16:32

Другие вопросы по теме