首页 > 其他分享 >2-16-Gateway网关-全局过滤器

2-16-Gateway网关-全局过滤器

时间:2023-08-20 10:34:10浏览次数:31  
标签:网关 16 exchange springframework USER org 过滤器 import Gateway

14-15 都是通过配置修改实现的预设过滤器

所谓的全局过滤器 可以认为是全局生效的自定义过滤器

通过新建类实现接口即可

package cn.itcast.study.mygateway;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.annotation.Order;
import org.springframework.http.HttpStatus;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.stereotype.Component;
import org.springframework.util.MultiValueMap;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
import java.util.List;

@Order(1)
@Component
public class authUserFilter  implements GlobalFilter {
    String AUTH_USER = "authUser";
    String PASS_USER = "dengliang";
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        //首先获取请求
        ServerHttpRequest request = exchange.getRequest();
        //获取请求参数
        MultiValueMap<String, String> queryParams = request.getQueryParams();
        //判断请求
        if(queryParams.containsKey(AUTH_USER)){
            List<String> strings = queryParams.get(AUTH_USER);
            if(strings.size()==1&&PASS_USER.equals(strings.get(0)))  return chain.filter(exchange);
        }
        exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
        return exchange.getResponse().setComplete();
    }
}

标签:网关,16,exchange,springframework,USER,org,过滤器,import,Gateway
From: https://www.cnblogs.com/dengliang356a/p/17643680.html

相关文章

  • 2-17-Gateway网关-过滤器链执行顺序
    自定义过滤器可以通过设置order注解来随意放置执行顺序配置过滤器则会在全局与单服务之间来回跳(因为两个都是从1开始计数,也可以自定义指定order属性)每一个过滤器都必须指定一个int类型的order值,order值越小,优先级越高,执行顺序越靠前。GlobalFilter通过实现Ordered接口,或者添......
  • 华为数通方向HCIP-DataCom H12-821题库(单选题:161-180)
    第161题以下关于URPF(UnicastReversePathForwarding)的描述,正确的是哪一项A、部署了严格模式的URPF,也能够可以同时部署允许匹配缺省路由模式B、如果部署松散模式的URPF,默认情况下不需要匹配明细路由C、如果部署松散模式的URPF,如果需要检查默认路由,则需要检查接口是否匹配......
  • 高中英语学习0803   leave out遗漏 16.should竟然/应该 17.
    1.  getthrough到达,度过getaround到处走走getalong进展,和睦相处getacross通过2.  beworthof+宾语3.非限定性定语从句,只能用which引导4.providesthforsbsupplysbwithsthprovidesbwithsth5.goabroad去国外,出国  g......
  • 2023年8月16日
       今天早上起来背了10个英语单词,然后学习了一个小时的java,写了一会英语阅读,然后和朋友出去打了两个小时的羽毛球,最后写了一会作业。    明天打算看一小时的电视剧,然后和朋友出去玩一会,打一两个小时的篮球,最后晚上练一小时的字,然后学习一小时的java。......
  • 暑期熔炉8月16
    阿卜杜拉的门前是一个高台阶送信的人一眼就可以分辨天上的灯关了阿卜杜拉也会留一盏目送着踏上天阶的灵魂走远......
  • 8.16
    使用阶段初始化完成后,Bean对象处于可用状态,可以供应用程序使用。在使用阶段,Bean可能会被注入到其他组件中,执行业务逻辑等。publicclassUserService{privateUserDaouserDao;//通过依赖注入注入UserDao对象@AutowiredpublicUserService(UserDaouserDao)......
  • 2-14-Gateway网关-路由断言工厂[15-Gateway网关-路由的过滤器配置]
    所谓的断言工厂与过滤器都是通过yml配置生效以下都将从配置的角度说明如何配置具体哪一个怎么用可以直接访问spring官网查看spring:cloud:gateway:routes:-id:user-serviceuri:lb://userservicepredicates:-Path=/us......
  • CF1656D K-good 题解
    CF1656DK-good题解题目大意给出\(t\)个整数\(n\),对于每一个\(n\)找出一个大于等于\(2\)的整数\(k\),使得\(n\)可以表示成\(k\)个mod\(k\)的结果互不相同的正整数之和。\(1\let\le10^5,2\len\le10^{18}\)。题解我们先将题意再次化简,可以得到,我们实际......
  • CSCI316 大数据挖掘
    CSCI316(SIM)2023Session3IndividualAssignment2CSCI316–BigDataMiningTechniquesandImplementationIndividualAssignment22023Session3(SIM)15MarksDeadline:RefertothesubmissionlinkofthisassignmentonMoodleThree(3)tasksareincludedi......
  • 2-13-Gateway网关-快速入门
    搭建网关1.新建springboot项目2.将新建项目作为模块加入原有体系<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaL......