You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot部署至Liberty时H2控制台报webAllowOthers禁用错误

问题现象

使用H2数据库的Spring Boot应用,在内嵌Tomcat容器中运行全流程正常;将WAR包部署到Open/WebSphere Liberty服务器后,访问H2控制台时抛出如下错误:

Sorry, remote connections ('webAllowOthers') are disabled on this server.

当前application.properties中相关配置如下(该配置在内嵌Tomcat环境下可正常运行):

# H2
spring.datasource.url=jdbc:h2:mem:MYDB
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.validationQuery=SELECT 1

# HIBERNATE
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.jpa.properties.hibernate.jdbc.time_zone=UTC


# H2 CONSOLE
spring.h2.console.enabled=true
spring.h2.console.path=/h2

访问地址 http://localhost:9080/myapi/v1/h2/ 时页面报错效果如下:
报错页面截图

问题原因

H2控制台默认出于安全考虑,禁止所有非本地回环地址的访问。Spring Boot内嵌Tomcat运行时,请求直接进入应用,H2控制台的Servlet可以直接识别到请求来源为本地127.0.0.1,因此默认配置下不会触发拦截。
部署到WebSphere Liberty这类外部容器时,请求会先经过容器的转发链路处理,H2控制台Servlet获取到的请求来源地址不再被识别为本地回环地址,因此触发了远程访问拦截规则,抛出上述错误。

解决方案

在application.properties的H2控制台配置段,新增显式允许控制台访问的配置项即可:

spring.h2.console.settings.web-allow-others=true

配置添加后重新打包部署到Liberty,重启服务后即可正常访问H2控制台。

注意:该配置会放开H2控制台的远程访问限制,仅建议在开发、测试环境使用;生产环境请关闭H2控制台,或配置严格的访问控制规则避免数据库未授权访问风险。


内容的提问来源于stack exchange,提问作者pixel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 01:45:41