Skip to content

Commit cc19569

Browse files
committed
filter
1 parent 0529dfb commit cc19569

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

pmhub-gateway/src/main/java/com/laigeoffer/pmhub/gateway/filter/AuthFilter.java

+27-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
import org.springframework.web.server.ServerWebExchange;
2222
import reactor.core.publisher.Mono;
2323

24+
import java.net.URI;
25+
import java.util.HashMap;
26+
import java.util.Map;
27+
2428
/**
2529
* 网关鉴权
2630
*
@@ -79,7 +83,29 @@ public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
7983
//先记录下访问接口的开始时间
8084
exchange.getAttributes().put(BEGIN_VISIT_TIME, System.currentTimeMillis());
8185

82-
return chain.filter(exchange.mutate().request(mutate.build()).build());
86+
// return chain.filter(exchange.mutate().request(mutate.build()).build());
87+
88+
// Mono.fromRunnable 是非阻塞的,适合在 then 中处理后续的日志逻辑。
89+
return chain.filter(exchange).then(Mono.fromRunnable(() -> {
90+
try {
91+
// 记录接口访问日志
92+
Long beginVisitTime = exchange.getAttribute(BEGIN_VISIT_TIME);
93+
if (beginVisitTime != null) {
94+
URI uri = exchange.getRequest().getURI();
95+
Map<String, Object> logData = new HashMap<>();
96+
logData.put("host", uri.getHost());
97+
logData.put("port", uri.getPort());
98+
logData.put("path", uri.getPath());
99+
logData.put("query", uri.getRawQuery());
100+
logData.put("duration", (System.currentTimeMillis() - beginVisitTime) + "ms");
101+
102+
log.info("访问接口信息: {}", logData);
103+
log.info("我是美丽分割线: ###################################################");
104+
}
105+
} catch (Exception e) {
106+
log.error("记录日志时发生异常: ", e);
107+
}
108+
}));
83109
}
84110

85111
private void addHeader(ServerHttpRequest.Builder mutate, String name, Object value) {

pmhub-ui/README.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ $env:NODE_OPTIONS="--openssl-legacy-provider"
5454

5555
还有球友(马嘉杰)的解决办法是(有点怪):
5656

57-
::: info 友情提示
5857
nodejs 版本是 17.0.0。
5958

6059
直接 `npm run dev` 还是会报错 `NODE_OPTIONS 不是内部命令或外部命令`
@@ -64,7 +63,7 @@ nodejs 版本是 17.0.0。
6463
然后在 PowerShell 中输入以下命令:
6564

6665
`$env:NODE_OPTIONS="--openssl-legacy-provider"`
67-
:::
66+
6867

6968
②、如果你是 macOS 用户,通常不会出现这个问题,因为我在 package.json 文件中加过处理了:
7069

0 commit comments

Comments
 (0)