我想记录访问令牌请求的响应正文,然后屏蔽它。像这样
{"access_token": "F******", "expires_in": 3600, "token_type": "Bearer"}
我该怎么做?我找到了接收令牌的位置,但不知道如何记录。
org.springframework.security.oauth2.client.endpoint.DefaultClientCredentialsTokenResponseClient#getTokenResponse
我想记录访问令牌请求的响应正文,然后屏蔽它。像这样
{"access_token": "F******", "expires_in": 3600, "token_type": "Bearer"}
我该怎么做?我找到了接收令牌的位置,但不知道如何记录。
org.springframework.security.oauth2.client.endpoint.DefaultClientCredentialsTokenResponseClient#getTokenResponse
1条答案
按热度按时间wj8zmpe11#
类
DefaultClientCredentialsTokenResponseClient
没有内置的可观察性。此外,它将JSON响应直接反序列化到OAuth2AccessTokenResponse
对象中,因此无论如何都不存在可以记录的中间字符串表示。为了记录来自访问令牌端点的响应,您需要自己使用RestTemplate
或WebClient
向该端点发出请求。一种替代方法是调整HTTP客户端库上的日志记录,以便它在与请求沿着发送时输出Bearer令牌。但是,它不会被掩盖。
另一种选择是在
WebClient.Builder
中添加一个简单的交换函数,如下面所示。这将允许您记录具有分配的承载令牌的出站请求,并且仍然允许您适当地屏蔽敏感值。