2016-04-05 17 views
8

Non riesco a visualizzare le informazioni del database o le informazioni sul file system sull'endpoint/health. Posso solo ottenere:Spring Boot Actuator/endpoint salute non mostra le informazioni sul database o sul file system

{ 
    "status": "UP" 
} 

dettagli sulla mia installazione e la configurazione: - Boot 1.3.3 Primavera - L'esecuzione del WAR su JBoss EAP 6.4 - Origine dati è una risorsa JNDI. - Oracle è il database

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 

Una cosa che ho trovato su/configprops è questa, che io non sono sicuro se è legato:

"spring.datasource.CONFIGURATION_PROPERTIES": { 
    "prefix": "spring.datasource", 
    "properties": { 
     "error": "Cannot serialize 'spring.datasource'" 
    } 

avevo provato ad aggiungere "conducente-classe- nome: oracle.jdbc.driver.OracleDriver "pensando che forse servivano più dettagli, ma questo non ha cambiato la situazione.

quindi sì, che cosa dà? Ho creato un progetto di esempio di vanilla che mostra almeno il file system fuori dal gate, quindi non sono sicuro del motivo per cui non si vuole mostrare nella mia app "reale". Dimmi le tue risposte grandiose e sagge! :)

risposta

0

Hai mescolato la sintassi YAML e Proprietà nel file di configurazione. Sostituire l'ultima riga dal seguente, e dovrebbe funzionare:

endpoints: 
    health: 
     sensitive: false 
+0

Apprezzo la risposta, ma che ci crediate o no, Sono in grado di commutare il valore senza problemi utilizzando la sintassi delle proprietà. Il cambio di quella linea nel formato YAML si sta comportando allo stesso modo. Nessun nuovo risultato su/heath. –

+0

Avete la sicurezza abilitata? – dunni

+0

Sto usando l'adattatore keycloak per l'avvio a molla. Posso raggiungere tutti i miei end point bene. –

3

Dalla documentazione spring-boot:

45,6 sicurezza con HealthIndicators

informazioni restituite da HealthIndicators è spesso un po 'di natura sensibile. Ad esempio, probabilmente non si desidera pubblicare i dettagli del server del database su il mondo. Per questo motivo, per impostazione predefinita, solo lo stato di integrità è esposto su una connessione HTTP non autenticata. Se sei soddisfatto delle informazioni complete sulla salute di per essere sempre esposto, puoi impostare endpoints.health.sensitive su false. Le risposte di integrità sono inoltre memorizzate nella cache per impedire attacchi "denial of service". Utilizzare la proprietà endpoint.health.time-to-live se si desidera modificare il periodo di cache predefinito di di 1000 millisecondi.

Assicurarsi di avere le seguenti proprietà impostate.

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

In casi, se si utilizza la protezione di primavera, per impostazione predefinita è abilitata la sicurezza per gli endpoint attuatori, disattivare nel file yml -

management: 
    security: 
      enabled: false