gpt4 book ai didi

spring-security-oauth2 - 使用OAuth2RestTemplate的Spring Cloud Feign

转载 作者:行者123 更新时间:2023-12-04 16:39:19 24 4
gpt4 key购买 nike

我正在尝试实现Feign Clients以从用户的服务中获取我的用户信息,当前我正在使用oAuth2RestTemplate进行请求,它可以正常工作。但是现在我希望更改为Feign,但是我收到错误代码401,可能是因为它不携带用户 token ,所以有一种方法可以自定义(如果使用Spring对Feign的支持)RestTemplate,以便我可以使用我自己的 bean ?

今天我以这种方式实现

服务客户端

@Retryable({RestClientException.class, TimeoutException.class, InterruptedException.class})
@HystrixCommand(fallbackMethod = "getFallback")
public Promise<ResponseEntity<UserProtos.User>> get() {
logger.debug("Requiring discovery of user");
Promise<ResponseEntity<UserProtos.User>> promise = Broadcaster.<ResponseEntity<UserProtos.User>>create(reactorEnv, DISPATCHER)
.observe(Promises::success)
.observeError(Exception.class, (o, e) -> Promises.error(reactorEnv, ERROR_DISPATCHER, e))
.filter(entity -> entity.getStatusCode().is2xxSuccessful())
.next();
promise.onNext(this.client.getUserInfo());
return promise;

}

和客户端
@FeignClient("account")
public interface UserInfoClient {

@RequestMapping(value = "/uaa/user",consumes = MediaTypes.PROTOBUF,method = RequestMethod.GET)
ResponseEntity<UserProtos.User> getUserInfo();
}

最佳答案

Feign不使用RestTemplate,因此您必须找到其他方式。如果创建类型为@Beanfeign.RequestInterceptor,它将应用于所有请求,因此,其中一个带有OAuth2RestTemplate的请求(仅用于管理 token 获取)可能是最好的选择。

关于spring-security-oauth2 - 使用OAuth2RestTemplate的Spring Cloud Feign,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29439653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com