首页 微服务三-网关
文章
取消

微服务三-网关

1.网关功能

image-20240308200216476

springCloud中网管有两种

  • gateway
  • zuul

image-20240308200307598

image-20240308200351670

2.编写路由配置及nacos地址

image-20240308201451291

image-20240308202426218

image-20240308202602525

image-20240308202637378

路由断言工厂

image-20240308202839027

image-20240308202911976

image-20240308203815273

过滤器工厂

image-20240308203911030

image-20240308203924050

image-20240308204943173

全局过滤器image-20240308205421176

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//@Order()
@Component
public class AuthorizeFilter implements GlobalFilter, Ordered {

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        //1.获取请求参数
        ServerHttpRequest request = exchange.getRequest();
        //2.获取参数中的 authorization参数
        MultiValueMap<String, String> params = request.getQueryParams();
        //3.判断参数值是否等于admin
        if ("admin".equals(params.getFirst("authorization"))){
            //4.是,放行
            return chain.filter(exchange);
        }
        //5.否,拦截
        //5.1设置状态码
        exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
        //5.2拦截请求
        return exchange.getResponse().setComplete();
    }

    @Override
    public int getOrder() {
        return -1;
    }
}

image-20240308210938936

过滤器执行顺序

image-20240308211213778

统一网关跨域问题

image-20240308212512303

CORS:浏览器询问服务器,是否允许跨域,服务器会指定一些列配置,默认浏览器询问服务器发起的是option请求,但是gateway网关模式是禁止option访问的,所以要配置允许option

image-20240308212635321

本文由作者按照 CC BY 4.0 进行授权
热门标签