全局过滤器 (GlobalFilter)
SpringCloud Gateway 支持自定义过滤器,可以很灵活的进行请求或者响应的控制。
自定义过滤器的方法是实现 GlobalFilter 接口、实现 Ordered 接口。这两个接口的全路径为:
- org.springframework.cloud.gateway.filter.GlobalFilter
- org.springframework.core.Ordered
获取请求参数
通关拦截请求参数我们可以作鉴权、限流等
通过实现 GlobalFilter 和 Ordered 这两个接口中的 filter(进行全局过滤)和 getOrder(指定过滤器的优先级)方法
其中,FilterChain 维护了一个链表,链表中存放着配置对象的链条,每次用户调用 一次 chain.doFilter(request, response),链表就去取下一个配置对象,再通过配置对象 得到下一个 filter,然后调用该 filter,接着在 filter 里写的逻辑就被执行了。
获取响应报文
通关拦截响应报文我们可以修改响应报文 例如身份证号,手机号码脱敏等