spring cloud gateway自定义过滤器
2023-09-27 14:28:21 时间
转:
spring cloud gateway自定义过滤器
关键点:
3、局部过滤器,需要实现GatewayFilter, Ordered,实现相关的方法
package com.yefengyu.gateway.localFilter; import com.yefengyu.gateway.utitls.AuthUtil; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.core.Ordered; import org.springframework.http.HttpStatus; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; public class AuthGatewayFilter implements GatewayFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { //获取header的参数 String name = exchange.getRequest().getHeaders().getFirst("name"); String password = exchange.getRequest().getHeaders().getFirst("password"); boolean permitted = AuthUtil.isPermitted(name, password);//权限比较 if (permitted) { return chain.filter(exchange); } else { exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED); return exchange.getResponse().setComplete(); } } @Override public int getOrder() { return 10; } }
4、接着需要把上面自定义的局部过滤器加入到过滤器工厂,并且注册到spring容器中。
package com.yefengyu.gateway.localFilter; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; import org.springframework.stereotype.Component; @Component public class AuthGatewayFilterFactory extends AbstractGatewayFilterFactory<Object> { @Override public GatewayFilter apply(Object config) { return new AuthGatewayFilter(); } }
5、在配置文件中进行配置,如果不配置则不启用此过滤器规则。
【配置文件这里只要写 AuthGatewayFilter 类名中GatewayFilter前面的部分就行】
相关文章
- Spring Cloud Alibaba入门实践
- 在OAuth 2.0模式下使用Spring Cloud Gateway
- 微服务下前后端分离的统一认证授权服务,基于Spring Security OAuth2 + Spring Cloud Gateway实现单点登录
- Spring Cloud Gateway 实现Token校验
- 微服务网关 Spring Cloud Gateway
- Spring Cloud Gateway 2.1.0 中文官网文档
- Too many open files ( spring-cloud-gateway )
- Spring Cloud 手记
- Spring Cloud Hystrix 服务容错保护
- Spring Cloud Gateway实战案例(限流、熔断回退、跨域、统一异常处理和重试机制)
- Spring Cloud Gateway核心概念和工作原理
- 使用Ocelot、IdentityServer4、Spring Cloud Eureka搭建微服务网关:Step by Step(二)
- Spring Cloud Gateway现高风险漏洞,建议采取措施加强防护
- 网关我选 Spring Cloud Gateway
- Spring Cloud Config 实现配置中心,看这一篇就够了
- 远程代码执行漏洞Spring Cloud Gateway RCE(CVE-2022-22947)
- 浅析如何使用Spring Cloud OpenFeign
- 服务对外提供接口以供不同站点之间使用:Spring Cloud Feign使用记录及携带token请求
- Spring Cloud Gateway 整合 knife4j 聚合接口文档
- Spring Cloud :整合Gateway 学习 (二)
- Spring Cloud : Gateway 服务网关认识(一)
- Spring Cloud : Gateway Redis动态路由 (七)
- api网关揭秘--spring cloud gateway源码解析
- Spring cloud 中关于 java.net.Inet6AddressImpl.getHostByAddr(Native Method)