我試圖實現Feign客戶端從用戶的服務,我目前正在請求與oAuth2RestTemplate,它的工作原理我的用戶信息。但是現在我想更改爲Feign,但是我得到錯誤代碼401可能是因爲它沒有攜帶用戶令牌,所以如果Spring對Feign的支持使用了RestTemplate,我可以使用它來自定義方式我自己的豆?春天雲Feign OAuth2RestTemplate
今天我實現這樣
該服務的客戶端
@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();
}
感謝@戴夫,創造RequestInterceptor'的'一個bean,並從設置承載令牌o Request在RequestTemplate頭上工作 – 2015-04-04 15:52:21
太棒了。也許你可以將它貢獻回春季雲安全? – 2015-04-05 16:58:09
當然,我會在GitHub上提出一張票,所以我們可以在那裏討論它 – 2015-04-05 20:52:07