Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
ca6e7a45
提交
ca6e7a45
authored
6月 11, 2022
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1. 增加 RPC starter
2. security 组件:feign 调用时,通过 header 透传 LoginUser 信息
上级
0cf1738c
显示空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
159 行增加
和
34 行删除
+159
-34
pom.xml
yudao-dependencies/pom.xml
+7
-0
pom.xml
yudao-framework/pom.xml
+1
-0
pom.xml
yudao-framework/yudao-spring-boot-starter-rpc/pom.xml
+42
-0
package-info.java
...a/cn/iocoder/yudao/framework/rpc/config/package-info.java
+4
-0
package-info.java
...ava/cn/iocoder/yudao/framework/rpc/core/package-info.java
+4
-0
FeignUtils.java
.../cn/iocoder/yudao/framework/rpc/core/util/FeignUtils.java
+48
-0
package-info.java
...ain/java/cn/iocoder/yudao/framework/rpc/package-info.java
+7
-0
《芋道 Spring Boot Dubbo 入门》.md
...udao-spring-boot-starter-rpc/《芋道 Spring Boot Dubbo 入门》.md
+1
-0
《芋道 Spring Boot 声明式调用 Feign 入门》.md
...pring-boot-starter-rpc/《芋道 Spring Boot 声明式调用 Feign 入门》.md
+1
-0
《芋道 Spring Cloud Alibaba 服务调用 Dubbo 入门》.md
...ot-starter-rpc/《芋道 Spring Cloud Alibaba 服务调用 Dubbo 入门》.md
+1
-0
《芋道 Spring Cloud 声明式调用 Feign 入门》.md
...ring-boot-starter-rpc/《芋道 Spring Cloud 声明式调用 Feign 入门》.md
+1
-0
pom.xml
yudao-framework/yudao-spring-boot-starter-security/pom.xml
+3
-11
YudaoSecurityRpcAutoConfiguration.java
...rk/security/config/YudaoSecurityRpcAutoConfiguration.java
+10
-1
LoginUserRequestInterceptor.java
...mework/security/core/rpc/LoginUserRequestInterceptor.java
+19
-0
spring.factories
...ter-security/src/main/resources/META-INF/spring.factories
+1
-1
pom.xml
yudao-gateway/pom.xml
+2
-7
application.yaml
yudao-gateway/src/main/resources/application.yaml
+3
-0
pom.xml
yudao-module-infra/yudao-module-infra-biz/pom.xml
+2
-7
pom.xml
yudao-module-system/yudao-module-system-biz/pom.xml
+2
-7
没有找到文件。
yudao-dependencies/pom.xml
浏览文件 @
ca6e7a45
...
@@ -222,6 +222,13 @@
...
@@ -222,6 +222,13 @@
<version>
${redisson.version}
</version>
<version>
${redisson.version}
</version>
</dependency>
</dependency>
<!-- RPC 远程调用相关 -->
<dependency>
<groupId>
cn.iocoder.cloud
</groupId>
<artifactId>
yudao-spring-boot-starter-rpc
</artifactId>
<version>
${revision}
</version>
</dependency>
<!-- Registry 注册中心相关 -->
<!-- Registry 注册中心相关 -->
<!-- Config 配置中心相关 -->
<!-- Config 配置中心相关 -->
...
...
yudao-framework/pom.xml
浏览文件 @
ca6e7a45
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
<module>
yudao-spring-boot-starter-protection
</module>
<module>
yudao-spring-boot-starter-protection
</module>
<module>
yudao-spring-boot-starter-job
</module>
<module>
yudao-spring-boot-starter-job
</module>
<module>
yudao-spring-boot-starter-mq
</module>
<module>
yudao-spring-boot-starter-mq
</module>
<module>
yudao-spring-boot-starter-rpc
</module>
<module>
yudao-spring-boot-starter-excel
</module>
<module>
yudao-spring-boot-starter-excel
</module>
<module>
yudao-spring-boot-starter-test
</module>
<module>
yudao-spring-boot-starter-test
</module>
...
...
yudao-framework/yudao-spring-boot-starter-rpc/pom.xml
0 → 100644
浏览文件 @
ca6e7a45
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
yudao-framework
</artifactId>
<groupId>
cn.iocoder.cloud
</groupId>
<version>
${revision}
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
yudao-spring-boot-starter-rpc
</artifactId>
<packaging>
jar
</packaging>
<name>
${project.artifactId}
</name>
<description>
OpenFeign:提供 RESTful API 的调用
Dubbo:提供 Dubbo RPC 的调用
</description>
<url>
https://github.com/YunaiV/ruoyi-vue-pro
</url>
<dependencies>
<dependency>
<groupId>
cn.iocoder.cloud
</groupId>
<artifactId>
yudao-common
</artifactId>
</dependency>
<!-- RPC 远程调用相关 -->
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-loadbalancer
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-dubbo
</artifactId>
</dependency>
</dependencies>
</project>
yudao-framework/yudao-spring-boot-starter-rpc/src/main/java/cn/iocoder/yudao/framework/rpc/config/package-info.java
0 → 100644
浏览文件 @
ca6e7a45
/**
* 占坑 TODO
*/
package
cn
.
iocoder
.
yudao
.
framework
.
rpc
.
config
;
yudao-framework/yudao-spring-boot-starter-rpc/src/main/java/cn/iocoder/yudao/framework/rpc/core/package-info.java
0 → 100644
浏览文件 @
ca6e7a45
/**
* 占坑 TODO
*/
package
cn
.
iocoder
.
yudao
.
framework
.
rpc
.
core
;
yudao-framework/yudao-spring-boot-starter-rpc/src/main/java/cn/iocoder/yudao/framework/rpc/core/util/FeignUtils.java
0 → 100644
浏览文件 @
ca6e7a45
package
cn
.
iocoder
.
yudao
.
framework
.
rpc
.
core
.
util
;
import
cn.hutool.core.util.ReflectUtil
;
import
cn.iocoder.yudao.framework.common.util.json.JsonUtils
;
import
feign.RequestTemplate
;
import
feign.template.HeaderTemplate
;
import
feign.template.Literal
;
import
feign.template.Template
;
import
feign.template.TemplateChunk
;
import
java.util.List
;
import
java.util.Map
;
/**
* {@link feign.Feign} 工具类
*
* @author 芋道源码
*/
public
class
FeignUtils
{
/**
* 添加 JSON 格式的 Header
*
* @param requestTemplate 请求
* @param name header 名
* @param value header 值
*/
@SuppressWarnings
(
"unchecked"
)
public
static
void
createJsonHeader
(
RequestTemplate
requestTemplate
,
String
name
,
Object
value
)
{
if
(
value
==
null
)
{
return
;
}
// 添加 header
String
valueStr
=
JsonUtils
.
toJsonString
(
value
);
requestTemplate
.
header
(
name
,
valueStr
);
// fix:由于 OpenFeign 针对 { 会进行分词,所以需要反射修改
// 具体分析,可见 https://zhuanlan.zhihu.com/p/360501330 文档
Map
<
String
,
HeaderTemplate
>
headers
=
(
Map
<
String
,
HeaderTemplate
>)
ReflectUtil
.
getFieldValue
(
requestTemplate
,
"headers"
);
HeaderTemplate
template
=
headers
.
get
(
name
);
List
<
Template
>
templateValues
=
(
List
<
Template
>)
ReflectUtil
.
getFieldValue
(
template
,
"values"
);
List
<
TemplateChunk
>
templateChunks
=
(
List
<
TemplateChunk
>)
ReflectUtil
.
getFieldValue
(
templateValues
.
get
(
0
),
"templateChunks"
);
templateChunks
.
set
(
0
,
Literal
.
create
(
valueStr
));
}
}
yudao-framework/yudao-spring-boot-starter-rpc/src/main/java/cn/iocoder/yudao/framework/rpc/package-info.java
0 → 100644
浏览文件 @
ca6e7a45
/**
* OpenFeign:提供 RESTful API 的调用
* Dubbo:提供 Dubbo RPC 的调用
*
* @author 芋道源码
*/
package
cn
.
iocoder
.
yudao
.
framework
.
rpc
;
yudao-framework/yudao-spring-boot-starter-rpc/《芋道 Spring Boot Dubbo 入门》.md
0 → 100644
浏览文件 @
ca6e7a45
<http://www.iocoder.cn/Spring-Boot/Dubbo/?yudao>
yudao-framework/yudao-spring-boot-starter-rpc/《芋道 Spring Boot 声明式调用 Feign 入门》.md
0 → 100644
浏览文件 @
ca6e7a45
<http://www.iocoder.cn/Spring-Boot/Feign/?yudao>
yudao-framework/yudao-spring-boot-starter-rpc/《芋道 Spring Cloud Alibaba 服务调用 Dubbo 入门》.md
0 → 100644
浏览文件 @
ca6e7a45
<http://www.iocoder.cn/Spring-Cloud-Alibaba/Dubbo/?yudao>
yudao-framework/yudao-spring-boot-starter-rpc/《芋道 Spring Cloud 声明式调用 Feign 入门》.md
0 → 100644
浏览文件 @
ca6e7a45
<http://www.iocoder.cn/Spring-Cloud/Feign/?yudao>
yudao-framework/yudao-spring-boot-starter-security/pom.xml
浏览文件 @
ca6e7a45
...
@@ -53,17 +53,9 @@
...
@@ -53,17 +53,9 @@
<!-- RPC 远程调用相关 -->
<!-- RPC 远程调用相关 -->
<dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<groupId>
cn.iocoder.cloud
</groupId>
<artifactId>
spring-cloud-starter-loadbalancer
</artifactId>
<artifactId>
yudao-spring-boot-starter-rpc
</artifactId>
</dependency>
<optional>
true
</optional>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-dubbo
</artifactId>
</dependency>
</dependency>
</dependencies>
</dependencies>
...
...
yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurity
Feign
AutoConfiguration.java
→
yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurity
Rpc
AutoConfiguration.java
浏览文件 @
ca6e7a45
package
cn
.
iocoder
.
yudao
.
framework
.
security
.
config
;
package
cn
.
iocoder
.
yudao
.
framework
.
security
.
config
;
import
cn.iocoder.yudao.framework.security.core.rpc.LoginUserRequestInterceptor
;
import
cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi
;
import
cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi
;
import
cn.iocoder.yudao.module.system.api.permission.PermissionApi
;
import
cn.iocoder.yudao.module.system.api.permission.PermissionApi
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
/**
/**
...
@@ -13,5 +16,11 @@ import org.springframework.context.annotation.Configuration;
...
@@ -13,5 +16,11 @@ import org.springframework.context.annotation.Configuration;
@Configuration
(
proxyBeanMethods
=
false
)
@Configuration
(
proxyBeanMethods
=
false
)
@EnableFeignClients
(
clients
=
{
OAuth2TokenApi
.
class
,
// 主要是引入相关的 API 服务
@EnableFeignClients
(
clients
=
{
OAuth2TokenApi
.
class
,
// 主要是引入相关的 API 服务
PermissionApi
.
class
})
PermissionApi
.
class
})
public
class
YudaoSecurityFeignAutoConfiguration
{
public
class
YudaoSecurityRpcAutoConfiguration
{
@Bean
public
LoginUserRequestInterceptor
loginUserRequestInterceptor
()
{
return
new
LoginUserRequestInterceptor
();
}
}
}
yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/rpc/LoginUserRequestInterceptor.java
0 → 100644
浏览文件 @
ca6e7a45
package
cn
.
iocoder
.
yudao
.
framework
.
security
.
core
.
rpc
;
import
cn.iocoder.yudao.framework.rpc.core.util.FeignUtils
;
import
cn.iocoder.yudao.framework.security.core.LoginUser
;
import
cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils
;
import
feign.RequestInterceptor
;
import
feign.RequestTemplate
;
public
class
LoginUserRequestInterceptor
implements
RequestInterceptor
{
@Override
public
void
apply
(
RequestTemplate
requestTemplate
)
{
LoginUser
user
=
SecurityFrameworkUtils
.
getLoginUser
();
if
(
user
!=
null
)
{
FeignUtils
.
createJsonHeader
(
requestTemplate
,
SecurityFrameworkUtils
.
LOGIN_USER_HEADER
,
user
);
}
}
}
yudao-framework/yudao-spring-boot-starter-security/src/main/resources/META-INF/spring.factories
浏览文件 @
ca6e7a45
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.iocoder.yudao.framework.security.config.YudaoSecurity
Feign
AutoConfiguration,\
cn.iocoder.yudao.framework.security.config.YudaoSecurity
Rpc
AutoConfiguration,\
cn.iocoder.yudao.framework.security.config.YudaoSecurityAutoConfiguration,\
cn.iocoder.yudao.framework.security.config.YudaoSecurityAutoConfiguration,\
cn.iocoder.yudao.framework.security.config.YudaoWebSecurityConfigurerAdapter
cn.iocoder.yudao.framework.security.config.YudaoWebSecurityConfigurerAdapter
yudao-gateway/pom.xml
浏览文件 @
ca6e7a45
...
@@ -37,15 +37,10 @@
...
@@ -37,15 +37,10 @@
<!-- RPC 远程调用相关 -->
<!-- RPC 远程调用相关 -->
<dependency>
<dependency>
<groupId>
org.springframework
.cloud
</groupId>
<groupId>
cn.iocoder
.cloud
</groupId>
<artifactId>
spring-cloud-starter-loadbalancer
</artifactId>
<artifactId>
yudao-spring-boot-starter-rpc
</artifactId>
</dependency>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-openfeign</artifactId>-->
<!-- </dependency>-->
<!-- Registry 注册中心相关 -->
<!-- Registry 注册中心相关 -->
<dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<groupId>
com.alibaba.cloud
</groupId>
...
...
yudao-gateway/src/main/resources/application.yaml
浏览文件 @
ca6e7a45
spring
:
spring
:
main
:
allow-circular-references
:
true
# 允许循环依赖,因为项目是三层架构,无法避免这个情况。
cloud
:
cloud
:
# Spring Cloud Gateway 配置项,对应 GatewayProperties 类
# Spring Cloud Gateway 配置项,对应 GatewayProperties 类
gateway
:
gateway
:
...
...
yudao-module-infra/yudao-module-infra-biz/pom.xml
浏览文件 @
ca6e7a45
...
@@ -66,13 +66,8 @@
...
@@ -66,13 +66,8 @@
<!-- RPC 远程调用相关 -->
<!-- RPC 远程调用相关 -->
<dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<groupId>
cn.iocoder.cloud
</groupId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
<artifactId>
yudao-spring-boot-starter-rpc
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-dubbo
</artifactId>
</dependency>
</dependency>
<!-- Registry 注册中心相关 -->
<!-- Registry 注册中心相关 -->
...
...
yudao-module-system/yudao-module-system-biz/pom.xml
浏览文件 @
ca6e7a45
...
@@ -81,13 +81,8 @@
...
@@ -81,13 +81,8 @@
<!-- RPC 远程调用相关 -->
<!-- RPC 远程调用相关 -->
<dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<groupId>
cn.iocoder.cloud
</groupId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
<artifactId>
yudao-spring-boot-starter-rpc
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-dubbo
</artifactId>
</dependency>
</dependency>
<!-- Registry 注册中心相关 -->
<!-- Registry 注册中心相关 -->
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论