1.在配置文件配置如下:意思为:匹配到path设置的路径 and 在after设置的时间后执行。
2.启动9001,9002,9003,9004,9007 如下
3.访问,此刻时间还没有到达设置的时间,进行访问
稍等一会,满足在after设定的时间之后,再次访问
1.配置cookie - Cookie=username,zzyy 2.配置头部 - Header=X-Request-Id, \d+ # 请求头要有X-Request-Id属性并且值为整数的正则表达式
......
案例原理: 自定义fliter 实现对请求参数必须含有uname参数,否则进行拦截掉。
package com.ljf.mscloud.filter;import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;import java.util.Date;/*** @auther zzyy* @create 2020-02-21 16:40*/
@Component
@Slf4j
public class MyLogGateWayFilter implements GlobalFilter, Ordered
{@Overridepublic Mono filter(ServerWebExchange exchange, GatewayFilterChain chain){log.info("***********come in MyLogGateWayFilter: "+new Date());String uname = exchange.getRequest().getQueryParams().getFirst("uname");if(uname == null){log.info("*******用户名为null,非法用户,o(╥﹏╥)o");exchange.getResponse().setStatusCode(HttpStatus.NOT_ACCEPTABLE);return exchange.getResponse().setComplete();}return chain.filter(exchange);}@Overridepublic int getOrder(){return 0;}
}
1.启动9001,9002,9003,9004,9007 如下:
1.不携带uname参数
2.携带uname参数
上一篇:我的周刊(第082期)