Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
zlt2000
microservices-platform
提交
7ade9642
microservices-platform
项目概览
zlt2000
/
microservices-platform
10 个月 前同步成功
通知
16
Star
4
Fork
3
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
microservices-platform
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7ade9642
编写于
3月 09, 2019
作者:
杨
杨戬
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加feign拦截器,适配无网络隔离时token的传递
上级
4df9ae64
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
64 addition
and
0 deletion
+64
-0
zlt-commons/zlt-ribbon-spring-boot-starter/pom.xml
zlt-commons/zlt-ribbon-spring-boot-starter/pom.xml
+5
-0
zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/annotation/EnableFeignInterceptor.java
...tral/common/ribbon/annotation/EnableFeignInterceptor.java
+22
-0
zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/FeignInterceptorConfig.java
.../central/common/ribbon/config/FeignInterceptorConfig.java
+37
-0
未找到文件。
zlt-commons/zlt-ribbon-spring-boot-starter/pom.xml
浏览文件 @
7ade9642
...
...
@@ -28,5 +28,10 @@
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpclient
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-oauth2
</artifactId>
<optional>
true
</optional>
</dependency>
</dependencies>
</project>
zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/annotation/EnableFeignInterceptor.java
0 → 100644
浏览文件 @
7ade9642
package
com.central.common.ribbon.annotation
;
import
com.central.common.ribbon.config.FeignInterceptorConfig
;
import
org.springframework.context.annotation.Import
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* 在启动类上添加该注解来----开启自动登录用户对象注入
* Token转化SysUser
*
* @author zlt
*/
@Target
(
ElementType
.
TYPE
)
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Import
(
FeignInterceptorConfig
.
class
)
public
@interface
EnableFeignInterceptor
{
}
zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/FeignInterceptorConfig.java
0 → 100644
浏览文件 @
7ade9642
package
com.central.common.ribbon.config
;
import
feign.RequestInterceptor
;
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拦截器
*
* @author zlt
*/
public
class
FeignInterceptorConfig
{
/**
* 使用feign client访问别的微服务时,将access_token放入参数或者header ,Authorization:Bearer xxx
* 或者url?access_token=xxx
*/
@Bean
public
RequestInterceptor
requestInterceptor
()
{
RequestInterceptor
requestInterceptor
=
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
);
}
}
};
return
requestInterceptor
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录