SpringCloud 中 Gateway 的自定义过滤器的使用

依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

自定义过滤器

@Component
public class MyFilter implements Ordered,GlobalFilter {

	@Override
	public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
		//过去ServerHttpRequest 
		ServerHttpRequest request = exchange.getRequest();
		MultiValueMap<String, String> queryParams = request.getQueryParams();
		List<String> list = queryParams.get("id");
		//ServerHttpResponse
		exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
		//继续执行
		return chain.filter(exchange);
	}

	@Override
	public int getOrder() {
		// TODO Auto-generated method stub
		return 0;
	}
}
posted @ 2022-03-07 18:03  叕叕666  阅读(42)  评论(0)    收藏  举报