相关疑难解决方法(0)

使用OAuth2RestTemplate进行Spring Cloud Feign

我正在尝试实现Feign Clients从用户的服务获取我的用户信息,目前我正在请求oAuth2RestTemplate,它可以工作.但是现在我想改为Feign,但是我得到错误代码401可能是因为它没有携带用户令牌,所以有一种方法可以自定义,如果Spring支持Feign正在使用,那么我可以使用RestTemplate我自己的豆?

今天我正以这种方式实施

服务客户端

@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;

}
Run Code Online (Sandbox Code Playgroud)

和客户

@FeignClient("account")
public interface UserInfoClient {

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

spring-security-oauth2 spring-cloud

5
推荐指数
2
解决办法
6965
查看次数