liuxiaolong
2019-05-06 f99bc8c6a1d10610373738edd7d0aa0181c81d99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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<br>
 * 任选其一即可,<br>
 * 如token为xxx<br>
 * 参数形式就是access_token=xxx<br>
 * header的话,是Authorization:Bearer xxx<br>
 * 我们默认放在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;
//    }
}