我无法获取要显示在/ health端点上的数据库信息或文件系统信息。我只能得到:
{
"status": "UP"
}
有关我的设置和配置的详细信息: - Spring Boot 1.3.3 - 在JBoss EAP 6.4上运行WAR - Datasource是JNDI资源。 - Oracle是数据库
spring:
datasource:
# Must match the datasource name in JBoss standalone.xml
jndi-name: java:jboss/beautiful-ds
driver-class-name: oracle.jdbc.driver.OracleDriver
jpa:
properties:
# escapes reserved words used as column names (if any)
globally_quoted_identifiers: true
show-sql: true
hibernate:
naming_strategy: org.hibernate.cfg.EJB3NamingStrategy
server:
servlet-path: /*
management:
health:
diskspace:
enabled: true
db:
enabled: true
endpoints.health.sensitive: false
我在/ configprops上找到的一件事就是这个,我不确定它是否相关:
"spring.datasource.CONFIGURATION_PROPERTIES": {
"prefix": "spring.datasource",
"properties": {
"error": "Cannot serialize 'spring.datasource'"
}
我曾尝试添加“driver-class-name:oracle.jdbc.driver.OracleDriver”,认为可能需要更多细节,但这并没有改变这种情况。
是的,是什么给出的?我做了一个vanilla示例项目,至少显示了文件系统的东西,所以不知道为什么要么不想在我的“真实”应用程序中显示。告诉我你伟大而明智的答案! :)答案 0 :(得分:5)
如果您使用弹簧安全性,则默认情况下会为执行器端点启用安全性,请在yml文件中禁用它 -
management:
security:
enabled: false
答案 1 :(得分:5)
默认情况下,Spring将以下属性设置为never
。
为了能够查看完整的健康状况详细信息,请将以下属性添加到application.properties
。
management.endpoint.health.show-details=always
答案 2 :(得分:4)
来自spring-boot
文档:
45.6 HealthIndicators的安全性
HealthIndicators返回的信息通常在某种程度上是敏感的。例如, 您可能不希望将数据库服务器的详细信息发布到 世界。因此,默认情况下,只有健康状态 通过未经身份验证的HTTP连接公开。如果你满意的话 完整的健康信息,以便您可以设置 endpoints.health.sensitive为false。健康反应也被缓存 防止“拒绝服务”攻击。使用 endpoints.health.time-to-live属性,如果你想改变 默认缓存周期为1000毫秒。
确保设置了以下属性。
endpoints.health.sensitive=true # Mark if the endpoint exposes sensitive information.
management.health.db.enabled=true # Enable database health check.
management.health.defaults.enabled=true # Enable default health indicators.
management.health.diskspace.enabled=true # Enable disk space health check.
答案 3 :(得分:1)
IIUC,聚合健康状况显示在/ health下,对于springboot2至少(IIUC)。这意味着,即使您已正确配置了所有内容,也只会显示一行。
更新:如果这不是您所需要的,则必须明确要求查看详细信息。检查以下设置:
management.endpoint.health.show-details=when-authorized
management.endpoint.health.roles=ADMIN
答案 4 :(得分:0)
您在配置文件中混合了YAML和属性语法。用以下内容替换最后一行,它应该起作用:
endpoints:
health:
sensitive: false