Skip to content

网关组件

网关组件提供基础的动态路由功能和统一的跨域配置。

组件依赖如下:

xml
<dependency>
    <groupId>cn.zjtele.pubinfo.cloud</groupId>
    <artifactId>pubinfo-cloud-starter-gateway</artifactId>
</dependency>

动态路由

网关第一次启动时,会将application-routes.yaml中的路由配置推送至nacos,后续路由配置的修改,则以nacos配置为准。网关会监听nacos的路由配置修改,实时变更路由策略。

底座采用的路由配置策略如下:

yaml
pubinfo:
  gateway:
    routes:
      - id: pubinfo-auth
        uri: lb://pubinfo-auth
        predicates:
          - name: Path
            args:
              pattern: /api/pubinfo-auth/**
        filters:
          - StripPrefix=1
          - AddRequestHeader=X-Forwarded-Prefix,/api/pubinfo-auth

注意

  • predicates中,默认添加了统一的前缀api,可自行变更。
  • filters列表中,第一个filter去掉了api前缀,第二个filter增加了header X-Forwarded-Prefix,用于微服务下swagger文档的正确显示,header的值为/api + 对应微服务的/contextPath

跨域配置

微服务模式下,跨域的配置统一由网关进行配置,各微服务把跨域配置关掉(pubinfo.core.enable=false),配置内容如下:

yaml
pubinfo:
  cors:
    enable: true
    allow-origin: '*'
    allowedMethods: '*'
    allowedHeaders: '*'
    allowCredentials: false

注意

allow-origin: '\*'allowCredentials: true不能同时存在