| 1234567891011121314151617181920212223242526272829303132 |
- package cc.mrbird.febs.common.configure;
- import cc.mrbird.febs.common.entity.constant.FebsConstant;
- import com.google.common.net.HttpHeaders;
- import feign.RequestInterceptor;
- import org.springframework.context.annotation.Bean;
- import org.springframework.security.core.context.SecurityContextHolder;
- import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails;
- import org.springframework.util.Base64Utils;
- /**
- * OAuth2 Feign配置
- *
- * @author MrBird
- */
- public class FebsOAuth2FeignConfigure {
- @Bean
- public RequestInterceptor oauth2FeignRequestInterceptor() {
- return requestTemplate -> {
- // 请求头中添加 Zuul Token
- String zuulToken = new String(Base64Utils.encode(FebsConstant.GATEWAY_TOKEN_VALUE.getBytes()));
- requestTemplate.header(FebsConstant.GATEWAY_TOKEN_HEADER, zuulToken);
- // 请求头中添加原请求头中的 Token
- Object details = SecurityContextHolder.getContext().getAuthentication().getDetails();
- if (details instanceof OAuth2AuthenticationDetails) {
- String authorizationToken = ((OAuth2AuthenticationDetails) details).getTokenValue();
- requestTemplate.header(HttpHeaders.AUTHORIZATION, FebsConstant.OAUTH2_TOKEN_TYPE + authorizationToken);
- }
- };
- }
- }
|