day02-Gateway(网关)

文章目录

Gateway网关

Gateway介绍



网关搭建



路由断言工厂



路由过滤器





全局过滤器(自定义过滤器)



java 复制代码
package cn.itcast.gateway;

// @Order(-1)
@Component
public class AuthorizeFilter implements GlobalFilter, Ordered {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        // 1.获取请求参数
        ServerHttpRequest request = exchange.getRequest();
        MultiValueMap<String, String> params = request.getQueryParams();
        // 2.获取参数中的 authorization 参数
        String auth = params.getFirst("authorization");
        // 3.判断参数值是否等于 admin
        if ("admin".equals(auth)) {
            // 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;
    }
}

过滤器执行顺序




跨域问题

CORS:浏览器问服务器可不可以跨域 服务器同意就可以跨域。

CORS请求方式是:options

'/\*\*' :代表拦截哪些请求 **是拦截一切请求

相关推荐
fb_1234513 小时前
Linux三剑客超全精讲(grep+sed+awk)零基础入门|正则+实战面试题
linux·运维·服务器
这个DBA有点耶14 小时前
多模数据库深度解读:从“多库拼装”到“一库多能”的架构演进
数据库·mysql·dba
晓晓_za89866814 小时前
Geo 优化服务 CI/CD 流水线搭建:源码自动构建、测试与灰度发布
运维·服务器·tcp/ip·spring·缓存·ci/cd
风流 少年14 小时前
hutool
java·服务器·开发语言
H_oRIZoN_14 小时前
Linux入门DAY27(文件IO(系统调用)详解|open/read/write/lseek)
java·linux·服务器
程序员夏洛15 小时前
MySQL 默认的事务隔离级别是什么?为什么选择这个级别?
数据库·mysql
艺术留白15 小时前
MokaTest使用篇-SQL接口
数据库·sql
一个处女座的程序猿15 小时前
Computer之Server:caddy(可扩展的服务器平台)的简介、安装和使用方法、案例应用之详细攻略
运维·服务器·server·caddy
( •̀∀•́ )92015 小时前
MySQL 自动备份与恢复方案
数据库·mysql·oracle
这个DBA有点耶16 小时前
大事务的“事前预防”:监控、拦截、Kill,四层防线一次讲透
数据库·mysql·代码规范