Я работаю над 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 отказался подключиться.




Помимо ответа @ 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();
Это позволяет отображать страницу во фрейме в том же источнике, что и сама страница.
Ваш ответ самый полный и безопасный. Спасибо!
Отвечает ли это на ваш вопрос? Почему консоль H2 в Spring Boot показывает пустой экран после входа в систему?