`

springcloud之服务网关gateway结合nacos

阅读更多
1.gateway application.yml配置
spring:
  application:
    name: api-gateway
  cloud:
    nacos:
      discovery:
        server-addr: 49.234.12.67:8848
    gateway:
      discovery:
        locator:
          enabled: true

2.jar
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

3.自定义全局过滤器需要实现GlobalFilter和Ordered接口
public class AuthGlobalFilter implements GlobalFilter, Ordered {

    /**
     * 完成判断逻辑
     */
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        String token = exchange.getRequest().getQueryParams().getFirst("token");
        if (StringUtils.isBlank(token)) {
            System.out.println("鉴权失败");
            exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
            return exchange.getResponse().setComplete();
        }
        //调用chain.filter继续向下游执行
        return chain.filter(exchange);
    }

    /**
     * 顺序,数值越小,优先级越高
     */
    @Override
    public int getOrder() {
        return 0;
    }
}

4.在主类上添加注解@EnableDiscoveryClient

通过浏览器访问: localhost:7000/服务名称/请求路径
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics