3.3 Gateway之自定义过滤器

1.Gateway过滤器种类

过滤器种类 描述
GatewayFilter 路由过滤器,作用于任意指定的路由。默认不生效,要配置到路由后生效
GlobalFilter 全局过滤器,作用范围是所有路由。声明后自定生效

2.Gateway过滤器参数

参数 描述
ServerWebExchange Gateway内部上下文对象,包含了整个过滤器链内共享的数据
GatewayFilterChain 过滤器链,当前过滤器执行完毕后,要调用过滤器链中的下一个过滤器

3.自定义GlobalFilter过滤器

java 复制代码
package com.example.filter;

import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

@Component
public class LoginGlobalFilter implements GlobalFilter, Ordered {

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        // 1.获取请求等数据
        // 2.过滤器的业务处理
        // 3.放行
        return chain.filter(exchange);
    }

    @Override
    public int getOrder() {
        // 过滤器的执行顺序,值越小,优先级越高。要高于NettyRoutingFilter过滤器的优先级
        return 0 ;
    }

}
相关推荐
魔道不误砍柴功40 分钟前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_23440 分钟前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨43 分钟前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
种树人2024081944 分钟前
如何在 Spring Boot 中启用定时任务
spring boot
测开小菜鸟2 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
P.H. Infinity3 小时前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天3 小时前
java的threadlocal为何内存泄漏
java
caridle3 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
^velpro^4 小时前
数据库连接池的创建
java·开发语言·数据库
苹果醋34 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx