import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.oauth2.client.OAuth2RestTemplate; import feign.RequestInterceptor;
import feign.RequestTemplate; /**
*
*用于解决fegin无法传递授权信息
* @author cicoding
* @date 2018年5月30日
* @Copyright
*
* <pre>
* =================Modify Record=================
* Modifier date Content
* cicoding 2019年5月26日 新增
*
* </pre>
*/
@Configuration
public class FeignRequestInterceptor implements RequestInterceptor {
private final Logger logger = LoggerFactory.getLogger(getClass()); private static final String AUTHORIZATION_HEADER = "Authorization"; private static final String BEARER_TOKEN_TYPE = "Bearer"; @Autowired
private OAuth2RestTemplate oAuth2RestTemplate; @Override
public void apply(RequestTemplate requestTemplate) {
String accessToken = WebContextUtil.getAccessToken();
if(accessToken == null){
accessToken =oAuth2RestTemplate.getAccessToken().getValue();
}
logger.debug("RequestInterceptorConfig accessToken :" +accessToken);
requestTemplate.header(AUTHORIZATION_HEADER,
String.format("%s %s",
BEARER_TOKEN_TYPE,
accessToken));
}
}

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.oauth2.client.DefaultOAuth2RequestAuthenticator;
import org.springframework.security.oauth2.client.OAuth2RestTemplate;
import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails; /**
*
*用于解决fegin无法传递授权信息
* @author cicoding
* @date 2018年5月30日
* @Copyright
*
* <pre>
* =================Modify Record=================
* Modifier date Content
* cicoding 2019年5月26日 新增
*
* </pre>
*/
@Configuration
public class OAuth2RestTemplateConfiguration {
@Bean
public OAuth2RestTemplate oauth2RestTemplate() {
ClientCredentialsResourceDetails resourceDetails = new ClientCredentialsResourceDetails();
resourceDetails.setClientId("webapp");
resourceDetails.setClientSecret("webapp");
resourceDetails.setId("service-user");
resourceDetails.setAccessTokenUri("http://127.0.0.1:9060/oauth/token");
OAuth2RestTemplate oAuth2RestTemplate = new OAuth2RestTemplate(resourceDetails);
oAuth2RestTemplate.setAuthenticator(new DefaultOAuth2RequestAuthenticator());
return oAuth2RestTemplate;
}
}

最新文章

  1. WebForm Repeater Response以及 地址栏
  2. 使用 KGDB 调试 Kernel On Red Hat Linux
  3. C#如何定义全局变量
  4. SharePoint 2013 开发——CSOM概要
  5. css3的背景多重运用
  6. 【Stage3D学习笔记续】山寨Starling(九):上下文丢失处理方法
  7. JavaScript数学函数的操作
  8. Array Partition I
  9. DESTOON B2B标签(tag)调用手册
  10. ActiveMQ系列之一:ActiveMQ简介
  11. CSS样式选择
  12. atoi 和 itoa的实现
  13. spark-sql将Rdd转换为DataFrame进行操作的两种方法
  14. 安装完office后 在组件服务里DCOM配置中找不到
  15. socket 进阶
  16. 最小生成树-普利姆算法lazy实现
  17. 委托、多播委托、泛型委托Func,Action,Predicate,ExpressionTree
  18. Mindoc搭建流程
  19. RobotFramework解析返回json断言
  20. CF932E Team Work(第二类斯特林数)

热门文章

  1. Rust到底值不值得学--Rust对比、特色和理念
  2. 一致性hash (PHP)
  3. 【CV现状-3.3】特征提取与描述
  4. redis在mac上的下载安装
  5. mac系统Intellij Idea的java环境配置:JDK + Tomcat + Maven
  6. DataTableHelper.cs 将DataTable转换为List,将List转换为DataTable的实现类
  7. Tomcat基本知识(一)
  8. MYSQL事件隔离级别以及复读,幻读,脏读的理解
  9. unittest生成测试报告
  10. Debian更新源加安装Metespolit&amp;&amp;Cobalt Strike