在 micronaut 客户端请求中添加 Token 标头

问题描述

在 micronaut 中,我有一个用例,我需要将 oauth2 访问令牌作为自定义标头(而不是 Header Name='Authorization)添加到每个请求中。

目前,我正在获取令牌并向 https://micronaut-projects.github.io/micronaut-security/latest/guide/#clientecredentialshttpclient 指定的每个请求添加授权标头。但我还必须向每个传出请求添加一个标头,其值为令牌。所以,我使用 HttpClientFilter 来拦截请求,然后读取授权标头,然后添加这个值为令牌的自定义标头。但这会导致并发问题。有时 ClientCredentialsHttpClientFilter 在 HttpClientFilter 之后被调用在这种情况下,我得到 null 作为令牌。

那么,有没有办法确保在 HttpClientFilter 之前调用 ClientCredentialsHttpClientFilter?

编辑:

当我通过 IDE 运行时,所有这些都可以正常工作。但是当我使用 native-image 时不会运行。

解决方法

过滤器实现了 Ordered 接口。

只需覆盖 getOrder() 方法并根据您所需的顺序设置值。