Feign设置assessToken
2024-09-01 11:44:25
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;
}
}
最新文章
- WebForm Repeater Response以及 地址栏
- 使用 KGDB 调试 Kernel On Red Hat Linux
- C#如何定义全局变量
- SharePoint 2013 开发——CSOM概要
- css3的背景多重运用
- 【Stage3D学习笔记续】山寨Starling(九):上下文丢失处理方法
- JavaScript数学函数的操作
- Array Partition I
- DESTOON B2B标签(tag)调用手册
- ActiveMQ系列之一:ActiveMQ简介
- CSS样式选择
- atoi 和 itoa的实现
- spark-sql将Rdd转换为DataFrame进行操作的两种方法
- 安装完office后 在组件服务里DCOM配置中找不到
- socket 进阶
- 最小生成树-普利姆算法lazy实现
- 委托、多播委托、泛型委托Func,Action,Predicate,ExpressionTree
- Mindoc搭建流程
- RobotFramework解析返回json断言
- CF932E Team Work(第二类斯特林数)
热门文章
- Rust到底值不值得学--Rust对比、特色和理念
- 一致性hash (PHP)
- 【CV现状-3.3】特征提取与描述
- redis在mac上的下载安装
- mac系统Intellij Idea的java环境配置:JDK + Tomcat + Maven
- DataTableHelper.cs 将DataTable转换为List,将List转换为DataTable的实现类
- Tomcat基本知识(一)
- MYSQL事件隔离级别以及复读,幻读,脏读的理解
- unittest生成测试报告
- Debian更新源加安装Metespolit&;&;Cobalt Strike