我们在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": { ... }
}
您是否遇到过类似的问题?您是如何处理的?
答案 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。不确定我是否正确,但我希望我能给您一个提示。 :)