2016-04-05 5 views
8

Я не могу получить информацию о базе данных или информацию о файловой системе, которая будет отображаться в конечной точке/health. Я могу только получить:Привод Spring Boot/конечная точка работоспособности не отображает информацию о базе данных или файловой системе

{ 
    "status": "UP" 
} 

Подробная информация о моей установке и настройке: - Spring Загрузочный 1.3.3 - Запуск WAR на JBoss EAP 6.4 - 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'" 
    } 

Я попытался добавить «водитель-class- имя: oracle.jdbc.driver.OracleDriver «думая, что, возможно, ему нужно больше деталей, но это не изменило ситуацию.

так что да, что дает? Я сделал пример проекта с ванилью, который, по крайней мере, показывает файловую систему из ворот, поэтому не уверен, почему или не хочу показывать в моем «реальном» приложении. Расскажи мне свои великие и мудрые ответы! :)

ответ

0

Вы смешивали синтаксис YAML и Properties в своем файле конфигурации. Заменить последнюю строку по следующему, и он должен работать:

endpoints: 
    health: 
     sensitive: false 
+0

Я ценю ответ, но верить этому или нет, Я могу переключать это значение без проблем, используя этот синтаксис свойств. Изменение этой строки в формате YAML ведет себя одинаково. Нет новых результатов в/heath. –

+0

У вас включена защита? – dunni

+0

Я использую адаптер keycloak для весеннего ботинка. Я могу полностью оценить все свои конечные точки. –

3

Из документации spring-boot:

45,6 безопасность с HealthIndicators

информации возвращаемого HealthIndicators часто несколько чувствительна в природе. Например, , вероятно, вы не хотите публиковать данные своего сервера базы данных до мира. По этой причине по умолчанию только состояние работоспособности - , выставленное по не прошедшему проверку HTTP-соединению. Если вы довольны полной информацией о состоянии здоровья, которая всегда должна быть выставлена, вы можете установить endpoints.health.sensitive to 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

В случае, если вы используете пружинную безопасность, то по умолчанию включена защита для конечных точек привода, отключите его в файле YML -

management: 
    security: 
      enabled: false