Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
promotion-gateway
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
promotion
promotion-gateway
Commits
084a6d72
提交
084a6d72
authored
3月 11, 2025
作者:
000516
提交者:
Coding
3月 11, 2025
浏览文件
操作
浏览文件
下载
差异文件
登录token与链路中心打通
Merge Request: 登录token与链路中心打通 Created By: @李秋林 Accepted By: @李秋林 URL:
https://g-pkkp8204.coding.net/p/promotion/d/promotion-gateway/git/merge/208?initial=true
上级
a8c227b9
5184cf01
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
97 行增加
和
27 行删除
+97
-27
docker-log.txt
docker-log.txt
+18
-2
pom.xml
pom.xml
+3
-3
UserDataService.java
...main/java/com/promotion/gateway/data/UserDataService.java
+2
-0
UserDataServiceImpl.java
.../com/promotion/gateway/data/impl/UserDataServiceImpl.java
+8
-0
AuthGlobalFilter.java
...n/java/com/promotion/gateway/filter/AuthGlobalFilter.java
+21
-11
application-dev.yml
src/main/resources/application-dev.yml
+8
-8
application-live.yml
src/main/resources/application-live.yml
+3
-3
application-qa.yml
src/main/resources/application-qa.yml
+34
-0
没有找到文件。
docker-log.txt
浏览文件 @
084a6d72
...
...
@@ -2,11 +2,27 @@
2、更新common代码、打包、更新依赖
3、刷新依赖并打jar包,然后build镜像
docker build -t promotion-gateway:latest .
mvn package -DskipTests
docker stop promotion-gateway-020 && docker rm promotion-gateway-020
docker rmi promotion-gateway-020
docker build -t promotion-gateway:0.2.0 .
Live启动:
docker run -d -p 8010:8010 --name promotion-gateway \
-v /var/logs/promotion-gateway/:/var/logs/promotion-gateway/ \
--restart=always \
--network host \
promotion-gateway:latest
promotion-gateway:0.2.0
QA启动:
docker run -d -p 8010:8010 --name promotion-gateway-020 \
-v /var/logs/promotion-gateway/:/var/logs/promotion-gateway/ \
--restart=always \
--network host \
promotion-gateway:0.2.0 \
--spring.profiles.active=qa
pom.xml
浏览文件 @
084a6d72
...
...
@@ -5,13 +5,13 @@
<parent>
<groupId>
com.wangxiaolu
</groupId>
<artifactId>
wangxiaolu-promotion-parent
</artifactId>
<version>
0.0.
1
</version>
<version>
0.0.
3
</version>
</parent>
<groupId>
com.wangxiaolu
</groupId>
<artifactId>
wangxiaolu-promotion-gateway
</artifactId>
<version>
0.
0.1
</version>
<version>
0.
2.0
</version>
<packaging>
jar
</packaging>
<name>
wangxiaolu-promotion-gateway
</name>
...
...
@@ -22,7 +22,7 @@
<dependency>
<groupId>
com.wangxiaolu
</groupId>
<artifactId>
wangxiaolu-promotion-common
</artifactId>
<version>
0.0.
2
</version>
<version>
0.0.
3
</version>
</dependency>
<dependency>
...
...
src/main/java/com/promotion/gateway/data/UserDataService.java
浏览文件 @
084a6d72
...
...
@@ -9,4 +9,6 @@ import com.alibaba.fastjson.JSONObject;
*/
public
interface
UserDataService
{
JSONObject
getUserByToken
(
String
token
);
boolean
hasKeyToken
(
String
tokenKey
);
}
src/main/java/com/promotion/gateway/data/impl/UserDataServiceImpl.java
浏览文件 @
084a6d72
...
...
@@ -2,6 +2,7 @@ package com.promotion.gateway.data.impl;
import
com.alibaba.fastjson.JSONObject
;
import
com.promotion.gateway.data.UserDataService
;
import
com.wangxiaolu.promotion.common.redis.RedisKeys
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.RedisTemplate
;
...
...
@@ -26,4 +27,11 @@ public class UserDataServiceImpl implements UserDataService {
String
val
=
vo
.
get
(
token
);
return
JSONObject
.
parseObject
(
val
);
}
@Override
public
boolean
hasKeyToken
(
String
tokenKey
)
{
Boolean
wb
=
redisTemplate
.
hasKey
(
RedisKeys
.
UserKeys
.
WXL_LINK_TOKEN
.
getKey
()
+
tokenKey
);
Boolean
tb
=
redisTemplate
.
hasKey
(
RedisKeys
.
UserKeys
.
TEMPORARY_TOKEN
.
getKey
()
+
tokenKey
);
return
wb
||
tb
;
}
}
src/main/java/com/promotion/gateway/filter/AuthGlobalFilter.java
浏览文件 @
084a6d72
package
com
.
promotion
.
gateway
.
filter
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
com.google.gson.Gson
;
import
com.promotion.gateway.data.UserDataService
;
import
com.wangxiaolu.promotion.common.
redis.RedisKey
s
;
import
com.wangxiaolu.promotion.common.
util.JwtTokenUtil
s
;
import
com.wangxiaolu.promotion.result.basedata.R
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
com.wangxiaolu.promotion.result.basedata.StatusCode
;
import
io.jsonwebtoken.Claims
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cloud.gateway.filter.GatewayFilterChain
;
...
...
@@ -15,7 +15,6 @@ import org.springframework.cloud.gateway.filter.GlobalFilter;
import
org.springframework.core.Ordered
;
import
org.springframework.core.io.buffer.DataBuffer
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.server.reactive.ServerHttpRequest
;
import
org.springframework.http.server.reactive.ServerHttpResponse
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.server.ServerWebExchange
;
...
...
@@ -25,7 +24,6 @@ import reactor.core.publisher.Mono;
import
java.nio.charset.StandardCharsets
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @author : liqiulin
...
...
@@ -40,10 +38,10 @@ public class AuthGlobalFilter implements GlobalFilter, Ordered {
* 放行URL
* 用户注册、用户登录、发送手机号验证码
*/
private
final
List
<
String
>
whiteUrls
=
Arrays
.
asList
(
"/login"
,
"/enroll"
,
"/sms/send/ver_code"
);
private
final
List
<
String
>
whiteUrls
=
Arrays
.
asList
(
"/login"
,
"/enroll"
,
"/sms/send/ver_code"
,
"/user/aliyun/signature"
,
"/wechat/miniapp/xlt"
);
@Autowired
UserDataService
userDataService
;
private
UserDataService
userDataService
;
@Override
public
Mono
<
Void
>
filter
(
ServerWebExchange
exchange
,
GatewayFilterChain
chain
)
{
...
...
@@ -62,13 +60,25 @@ public class AuthGlobalFilter implements GlobalFilter, Ordered {
}
// 3、验证token
JSONObject
userJson
=
userDataService
.
getUserByToken
(
RedisKeys
.
UserKeys
.
TEMPORARY_TOKEN
.
getKey
()
+
token
);
if
(
Objects
.
isNull
(
userJson
))
{
log
.
info
(
"访问URL:{},token登录错误:{}"
,
url
,
token
);
Claims
claims
=
JwtTokenUtils
.
parseToken
(
token
);
if
(
claims
==
null
)
{
return
loginError
(
exchange
,
RCode
.
NOT_LOGIN_TIMEOUT_ERROR
);
}
ServerHttpRequest
httpRequest
=
exchange
.
getRequest
().
mutate
().
header
(
"loginId"
,
userJson
.
getString
(
"id"
)).
header
(
"loginQcId"
,
userJson
.
getString
(
"qcId"
)).
build
();
return
chain
.
filter
(
exchange
.
mutate
().
request
(
httpRequest
).
build
());
String
userkey
=
JwtTokenUtils
.
getUserKey
(
claims
);
boolean
islogin
=
userDataService
.
hasKeyToken
(
userkey
);
if
(!
islogin
)
{
return
loginError
(
exchange
,
RCode
.
NOT_LOGIN_TIMEOUT_ERROR
);
}
String
userid
=
JwtTokenUtils
.
getUserId
(
claims
);
String
username
=
JwtTokenUtils
.
getUserName
(
claims
);
if
(
StringUtils
.
isBlank
(
userid
)
||
StringUtils
.
isBlank
(
username
))
{
return
loginError
(
exchange
,
RCode
.
NOT_LOGIN_TIMEOUT_ERROR
);
}
return
chain
.
filter
(
exchange
);
}
@Override
...
...
src/main/resources/application-dev.yml
浏览文件 @
084a6d72
spring
:
datasource
:
driver-class-name
:
com.mysql.jdbc.Driver
url
:
jdbc:mysql://
bj-cdb-j8ppdy86.sql.tencentcdb.com:63569/promotion_dev
?autoReconnect=true
username
:
LnNDBM
password
:
fd0%bhD4@oO(%
url
:
jdbc:mysql://
192.168.0.18:3306/promotion
?autoReconnect=true
username
:
NvqGbJXH
password
:
D9Y@FR,84B*$MD^A36&m
redis
:
port
:
2
1101
host
:
bj-crs-oyzhz3c6.sql.tencentcdb.com
port
:
2
3385
host
:
1.202.69.170
database
:
0
password
:
u)R3jrHk(qwt~mv$Tg=U
password
:
QjL6H5nH
main
:
web-application-type
:
reactive
...
...
@@ -16,8 +16,8 @@ spring:
cloud
:
nacos
:
discovery
:
server-addr
:
42.193.103.153
:8848
namespace
:
dd681f3c-0d21-42e5-a96e-14863a7cdcdb
server-addr
:
192.168.100.38
:8848
namespace
:
68c8d97c-715a-4983-99b7-9df9b99f89e7
group
:
promotion
gateway
:
...
...
src/main/resources/application-live.yml
浏览文件 @
084a6d72
...
...
@@ -5,10 +5,10 @@ spring:
username
:
LnNDBM
password
:
fd0%bhD4@oO(%
redis
:
port
:
7548
host
:
1
92.168.0.11
port
:
23385
host
:
1
.202.69.170
database
:
1
password
:
u)R3jrHk(qwt~mv$Tg=U
password
:
QjL6H5nH
main
:
web-application-type
:
reactive
...
...
src/main/resources/application-qa.yml
0 → 100644
浏览文件 @
084a6d72
spring
:
datasource
:
driver-class-name
:
com.mysql.jdbc.Driver
url
:
jdbc:mysql://192.168.0.18:3306/promotion?autoReconnect=true
username
:
NvqGbJXH
password
:
D9Y@FR,84B*$MD^A36&m
redis
:
port
:
6379
host
:
192.168.100.40
database
:
0
password
:
QjL6H5nH
main
:
web-application-type
:
reactive
cloud
:
nacos
:
discovery
:
server-addr
:
192.168.100.38:8848
namespace
:
3b774c2d-b03b-4816-8fe8-a41f458ebbcc
group
:
promotion
gateway
:
discovery
:
locator
:
enabled
:
true
routes
:
-
id
:
wangxiaolu-promotion-service
uri
:
lb://wangxiaolu-promotion-service
# uri: http://127.0.0.1:8011
predicates
:
-
Path=/**
logging
:
config
:
classpath:logback-spring.xml
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论