2015-10-06 24 views
6

Tôi đã viết một lớp triển khai HealthIndicator, ghi đè phương pháp sức khỏe. Tôi trở Health.down().withDetail("SupportServiceStatus", "UP").build();sức khỏe xuân khởi động không hiển thị chi tiết (với thông tin chi tiết)

này nên health trở -endpoint tôi:

{ 
    "status":"UP", 
    "applicationHealth": { 
     "status":"UP" 
    } 
} 

Thay vào đó nó chỉ trả về (sức khỏe, không có chi tiết):

{ 
    "status":"UP", 
} 

Javacode (hơi đơn giản):

@Component 
public class ApplicationHealth implements HealthIndicator { 

    @Override 
    public Health health() { 
    return check(); 
    } 

    private Health check() { 
    return Health.up().withDetail("SupportServiceStatus", supportServiceStatusCode).build(); 
    } 

} 

Trả lời

9

Theo tài liệu khởi động mùa xuân :

. . . theo mặc định, chỉ trạng thái sức khỏe được hiển thị trên kết nối HTTP chưa được xác thực. Nếu bạn hạnh phúc vì thông tin sức khỏe hoàn chỉnh luôn được tiếp xúc, bạn có thể đặt endpoints.health.sensitive thành false.

Giải pháp là đặt endpoints.health.sensitive thành false trong application.properties.

application.properties

endpoints.health.sensitive=false 

Đối> 1.5.1 application.properties

management.security.enabled=false 
+0

không hoạt động với khởi động mùa xuân 1.5.1 – cahen

+0

câu trả lời cập nhật cho các phiên bản mới hơn – olahell

+0

Dành cho> 1.4.1 Tôi nghĩ vậy. Cần cờ quản lý trong 1.4.2-RELEASE – Jontia

5

Thiết 'endpoints.health.sensitive' khiến có sự khác biệt ... đã phải thiết lập:

management: 
    security: 
     enabled: false 
+1

Tôi nghĩ rằng điều này chỉ được yêu cầu từ khoảng giữa 1.4.1.RELEASE và 1.5 .1.RELEASE (Tôi vừa nâng cấp và phải làm điều này) – James

1

Tại Spring Boot 2.0.0.RELEASE:

management: 
    endpoint: 
     health: 
     show-details: "ALWAYS" 
Các vấn đề liên quan