From c0ec4e34f8c7e8c3a4ad85d13c7e5707b02fd13e Mon Sep 17 00:00:00 2001 From: Qing Date: Sun, 3 Mar 2024 17:57:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20nacos=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/bootstrap.yml | 2 +- .../club/gateway/filter/LoginFilter.java | 46 +++++++++++++++++++ .../src/main/resources/application.yml | 6 +-- .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 2 +- 5 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 qing-yu-club-gateway/src/main/java/com/landaiqing/club/gateway/filter/LoginFilter.java diff --git a/qing-yu-club-auth/qing-yu-club-auth-starter/src/main/resources/bootstrap.yml b/qing-yu-club-auth/qing-yu-club-auth-starter/src/main/resources/bootstrap.yml index 38aebdb..0f8f91a 100644 --- a/qing-yu-club-auth/qing-yu-club-auth-starter/src/main/resources/bootstrap.yml +++ b/qing-yu-club-auth/qing-yu-club-auth-starter/src/main/resources/bootstrap.yml @@ -1,6 +1,6 @@ spring: application: - name: qing-yu-club-auth + name: qing-yu-club-auth-dev profiles: active: dev cloud: diff --git a/qing-yu-club-gateway/src/main/java/com/landaiqing/club/gateway/filter/LoginFilter.java b/qing-yu-club-gateway/src/main/java/com/landaiqing/club/gateway/filter/LoginFilter.java new file mode 100644 index 0000000..69c3974 --- /dev/null +++ b/qing-yu-club-gateway/src/main/java/com/landaiqing/club/gateway/filter/LoginFilter.java @@ -0,0 +1,46 @@ +package com.landaiqing.club.gateway.filter; + +import cn.dev33.satoken.stp.SaTokenInfo; +import cn.dev33.satoken.stp.StpUtil; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cloud.gateway.filter.GatewayFilterChain; +import org.springframework.cloud.gateway.filter.GlobalFilter; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +/** + * @Classname LoginFilter + * @BelongsProject: qing-yu-club + * @BelongsPackage: com.landaiqing.club.gateway.filter + * @Author: landaiqing + * @CreateTime: 2024-03-03 17:41 + * @Description: 登录拦截器 + * @Version: 1.0 + */ +@Component +@Slf4j +public class LoginFilter implements GlobalFilter { + @Override + @SneakyThrows + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { + ServerHttpRequest request = exchange.getRequest(); + ServerHttpRequest.Builder mutate = request.mutate(); + String url = request.getURI().getPath(); + log.info("LoginFilter.filter.url:{}", url); + if (url.equals("/auth/user/doLogin")) { + chain.filter(exchange); + } + SaTokenInfo tokenInfo = StpUtil.getTokenInfo(); + String loginId = (String) tokenInfo.getLoginId(); + if (StringUtils.isEmpty(loginId)) { + throw new Exception("未获取到用户信息"); + } + mutate.header("loginId", loginId); + + return chain.filter(exchange.mutate().request(mutate.build()).build()); + } +} diff --git a/qing-yu-club-gateway/src/main/resources/application.yml b/qing-yu-club-gateway/src/main/resources/application.yml index f29cb32..f8c5254 100644 --- a/qing-yu-club-gateway/src/main/resources/application.yml +++ b/qing-yu-club-gateway/src/main/resources/application.yml @@ -5,19 +5,19 @@ spring: gateway: routes: - id: oss - uri: lb://qing-yu-club-oss + uri: lb://qing-yu-club-oss-dev predicates: - Path=/oss/** filters: - StripPrefix=1 - id: auth - uri: lb://qing-yu-club-auth + uri: lb://qing-yu-club-auth-dev predicates: - Path=/auth/** filters: - StripPrefix=1 - id: subject - uri: lb://qing-yu-club-subject + uri: lb://qing-yu-club-subject-dev predicates: - Path=/subject/** filters: diff --git a/qing-yu-club-oss/src/main/resources/bootstrap.yml b/qing-yu-club-oss/src/main/resources/bootstrap.yml index 8a32457..c3dd63c 100644 --- a/qing-yu-club-oss/src/main/resources/bootstrap.yml +++ b/qing-yu-club-oss/src/main/resources/bootstrap.yml @@ -1,6 +1,6 @@ spring: application: - name: qing-yu-club-oss + name: qing-yu-club-oss-dev profiles: active: dev cloud: diff --git a/qing-yu-club-subject/qing-yu-club-starter/src/main/resources/bootstrap.yml b/qing-yu-club-subject/qing-yu-club-starter/src/main/resources/bootstrap.yml index 865badb..048f7f3 100644 --- a/qing-yu-club-subject/qing-yu-club-starter/src/main/resources/bootstrap.yml +++ b/qing-yu-club-subject/qing-yu-club-starter/src/main/resources/bootstrap.yml @@ -1,6 +1,6 @@ spring: application: - name: qing-yu-club-subject + name: qing-yu-club-subject-dev profiles: active: dev cloud: