有许多帖子解释了如何使用Feign Interceptor将动态头部添加到请求中
@Bean
public RequestInterceptor requestInterceptor() {
@Override
public void apply(RequestTemplate requestTemplate) {
var jwtToken = refreshAccessTokenClient.refresh();
requestTemplate.header("Authorization", jwtToken);
}
}有没有可能在多个线程之间共享jwtToken并定期刷新?当前的解决方案不是最优的,并且每次额外调用1次。
发布于 2019-10-05 21:03:13
我想出了解决方案:
@Bean
public RequestInterceptor requestInterceptor(@Value("${service.login}") String login,
@Value("${service.apiKey}") String apiKey) {
return
requestTemplate -> {
var request = LoginRequest.builder().loginId(login).apiKey(apiKey).build();
var jwtToken = authAuthProvider.login(request).getData().getAccessToken();
requestTemplate.header("Authorization", "Bearer " + jwtToken);
};
}我盲目地为每个应用程序接口调用请求jwtToken。这看起来不像是有效的解决方案。应该用TLL寻找一些@Cacheable的东西吗?
https://stackoverflow.com/questions/58213862
复制相似问题