我正在使用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
当我想使用浏览器通过“ http://localhost:8082/h2-console”查看H2数据库控制台时,在浏览器中打开一个带有“连接并测试连接”按钮的屏幕。当我单击“测试连接”时,它返回成功,但是当单击“连接”按钮时,出现了本地主机拒绝连接的错误。
答案 0 :(得分:15)
根据this blog post,需要向其中添加一行
如果项目中具有configure
依赖项,则使用SecurityConfig
类的spring-boot-starter-security
方法,否则登录H2控制台后将看到一个空白页面:
http.headers().frameOptions().disable();
我添加了这一行,它解决了问题。
或者,可以使用以下行(如here所述):
http.headers().frameOptions().sameOrigin();
答案 1 :(得分:2)
除了@Alien的回复,我还必须添加http.csrf().disable();
。
答案 2 :(得分:1)
将这两行添加到您的spring安全文件中,一切顺利。
http.csrf().disable();
http.headers().frameOptions().disable();
答案 3 :(得分:0)
在第一行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>
答案 4 :(得分:0)
默认情况下,Spring Security禁用iframe中的呈现,因为允许将网页添加到框架可能是一个安全问题,例如Clickjacking。由于H2控制台在框架中运行,因此在启用Spring安全性后,必须显式禁用框架选项,以使H2控制台正常工作。
http.headers().frameOptions().disable();
通常X-Frame-Options有两个可能的指令,它们是DENY或SAMEORIGIN,因此以下配置也可以用于受限制但安全的访问。
headers().frameOptions().sameOrigin();
这允许页面以与页面本身相同的原点显示在框架中
答案 5 :(得分:-1)
H2控制台显示从VPN断开连接后