瀏覽代碼

新建网关工程

zhuoning 4 年之前
父節點
當前提交
4560777906

+ 52 - 0
huimv-ql-farm/huimv-ql-gateway/pom.xml

@@ -0,0 +1,52 @@
+<?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>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.4.1</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>huimv-ql-gateway</artifactId>
+
+    <properties>
+        <java.version>1.8</java.version>
+        <spring-cloud.version>2020.0.0</spring-cloud.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-gateway</artifactId>
+        </dependency>
+    </dependencies>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 30 - 0
huimv-ql-farm/huimv-ql-gateway/src/main/java/com/farm/gateway/GatewayApplication.java

@@ -0,0 +1,30 @@
+package com.farm.gateway;
+
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+//@EnableDiscoveryClient
+@SpringBootApplication
+public class GatewayApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(GatewayApplication.class, args);
+    }
+
+    /**
+     * @Method      : tokenFilter
+     * @Description : 启动全局过滤器,如果全局过滤器不加@Component注解,就必须要在这里加配置。
+     * @Params      : []
+     * @Return      : com.znsoft.gateway2.filter.TokenFilter
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/1/9       
+     * @Time        : 11:11
+     */
+//    @Bean
+//    public TokenFilter tokenFilter(){
+//        return new TokenFilter();
+//    }
+
+}

+ 54 - 0
huimv-ql-farm/huimv-ql-gateway/src/main/java/com/farm/gateway/filter/TokenFilter.java

@@ -0,0 +1,54 @@
+package com.farm.gateway.filter;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.gateway.filter.GatewayFilterChain;
+import org.springframework.cloud.gateway.filter.GlobalFilter;
+import org.springframework.core.Ordered;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Mono;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+// 注释该注解,过滤器就时效
+//@Component
+public class TokenFilter implements GlobalFilter, Ordered {
+    Logger logger = LoggerFactory.getLogger(TokenFilter.class);
+
+    @Override
+    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+        logger.info("========> 开始进行转发前过滤工作 ========>");
+        ServerHttpRequest request = exchange.getRequest();
+        logger.info("Path:"+request.getPath().value());
+        logger.info("HostName:"+request.getLocalAddress().getHostName());
+        logger.info("Port:"+request.getLocalAddress().getPort());
+        logger.info("Address:"+request.getLocalAddress().getAddress());
+        logger.info("QueryParams:"+request.getQueryParams().toString());
+        logger.info("URI:"+request.getURI().toString());
+        logger.info("<======== 转发前结束过滤工作 <========");
+//
+//        logger.info("StatusCode:"+exchange.getResponse().getStatusCode().toString());
+
+        // --过滤token--
+//        String token = exchange.getRequest().getQueryParams().getFirst("token");
+//        if (token == null || token.isEmpty()) {
+//            logger.info("StatusCode:"+exchange.getResponse().getStatusCode().toString());
+//            logger.info("token is empty...");
+//            exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
+//            return exchange.getResponse().setComplete();
+//        }
+        return chain.filter(exchange);
+    }
+
+    @Override
+    public int getOrder() {
+        return 1;
+    }
+}

+ 24 - 0
huimv-ql-farm/huimv-ql-gateway/src/main/resources/application.yml

@@ -0,0 +1,24 @@
+server:
+  port: 8010
+
+spring:
+  # 配置服务名
+  application:
+    name: gateway
+  # 配置Cloud
+  cloud:
+    gateway:          # 配置网关
+      enabled: true   #配置网关是否可以启用
+      routes:
+        - id: environment_route
+          uri: http://192.168.1.53:8090               #匹配后提供的路由地址
+          predicates:
+            - Path=/environment/**
+          filters:
+            - StripPrefix=1
+
+logging:
+  level:
+    org.springframework.cloud.gateway: debug  # Gateway调试模式
+
+