如何配置“运行状况”执行器端点以与令牌认证一起使用?

时间:2019-02-28 08:41:01

标签: spring spring-boot spring-security spring-boot-actuator

我们在Spring Boot 2应用程序中使用基于令牌的身份验证(带有Spring Security)。现在,我向它介绍Spring Boot Actuator。我想将/health端点配置为在没有任何权限的情况下可见,但仅在获得授权时才显示健康检查详细信息。

我发现属性management.endpoint.health.show-details=when_authorized应该有用,但是现在我正在与Spring Security配置进行斗争,以允许所有人看到:

{
  "status": "UP"
}

/actuator/health下,而获得令牌授权的用户则应看到:

{
  "status": "UP",
  "details": { ... }
}

您是否遇到过类似的问题?您是如何处理的?

1 个答案:

答案 0 :(得分:1)

好的,现在我知道了,如果您关闭应用程序中的安全性并保留k2Swgcy31gjumKtTWSlMLw,您将得到Utils.js:214 [2019-02-28T20:11:48.978Z] Debug: Starting HubConnection. Utils.js:214 [2019-02-28T20:11:48.987Z] Debug: Starting connection with transfer format 'Text'. Utils.js:214 [2019-02-28T20:11:48.988Z] Debug: Sending negotiation request: https://localhost:44348/progress/negotiate. core.js:16828 Angular is running in the development mode. Call enableProdMode() to enable the production mode. Utils.js:214 [2019-02-28T20:11:49.237Z] Debug: Selecting transport 'WebSockets'. Utils.js:210 [2019-02-28T20:11:49.377Z] Information: WebSocket connected to wss://localhost:44348/progress?id=k2Swgcy31gjumKtTWSlMLw. Utils.js:214 [2019-02-28T20:11:49.378Z] Debug: Sending handshake request. Utils.js:210 [2019-02-28T20:11:49.380Z] Information: Using HubProtocol 'json'. Utils.js:214 [2019-02-28T20:11:49.533Z] Debug: Server handshake complete. app.component.ts:39 Connection started! app.component.ts:47 Task service succeeded 字段吗?如果我是对的,那不是问题,请在management.endpoint.health.show-details=when_authorized方法中查看Spring类status。正如我发现的那样,如果HealthWebEndpointResponseMapper中的条件为true,则此方法会覆盖(从响应中删除map字段):

details

在您的情况下,我想您已经将上述属性设置为if,并且您已经关闭了身份验证,因此主体为null。不确定我是否正确,但我希望我能给您一个提示。 :)