package com.cloud.user.config; //import feign.RequestInterceptor; //import feign.RequestTemplate; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; /*import org.springframework.security.oauth2.common.OAuth2AccessToken; import org.springframework.security.oauth2.provider.OAuth2Authentication; import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails;*/ /** * 使用feign client访问别的微服务时,将access_token放入参数或者header
* 任选其一即可,
* 如token为xxx
* 参数形式就是access_token=xxx
* header的话,是Authorization:Bearer xxx
* 我们默认放在header里 * * @author bsk * */ //@Configuration public class FeignInterceptorConfig { // @Bean // public RequestInterceptor requestInterceptor() { // RequestInterceptor requestInterceptor = new RequestInterceptor() { // // @Override // public void apply(RequestTemplate template) { // Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); // if (authentication != null) { // if (authentication instanceof OAuth2Authentication) { // OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) authentication.getDetails(); // String access_token = details.getTokenValue(); // // template.header("Authorization", OAuth2AccessToken.BEARER_TYPE + " " + access_token); //// template.query(OAuth2AccessToken.ACCESS_TOKEN, access_token); // } // // } // } // }; // // return requestInterceptor; // } }