SpringCloud过滤filter
Posted 慕容子月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud过滤filter相关的知识,希望对你有一定的参考价值。
目录
配置文件 application.yml
eureka: client: service-url: defaultZone: http://localhost:8001/eureka server: port: 9001 spring: application: name: zuul ##配置zuul网关 zuul: routes: api-a: path: /member-zuul/** service-id: memeber-service api-b: path: /order-zuul/** service-id: order-service
MyZuulFilter类
package com.cloud.filter; import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; import com.netflix.zuul.exception.ZuulException; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; import java.io.IOException; @Component public class MyZuulFilter extends ZuulFilter { /** * 过滤类型 * @return */ @Override public String filterType() { return "pre"; } /** * 请求过滤顺序 * @return */ @Override public int filterOrder() { return 0; } /** * * @return */ @Override public boolean shouldFilter() { return true; } @Override public Object run() throws ZuulException { //获取token参数 RequestContext rc = RequestContext.getCurrentContext(); HttpServletRequest request = rc.getRequest(); String token = request.getParameter("token"); if(token!=null){ return null; } //表示不进行路由 rc.setSendZuulResponse(false); rc.setResponseStatusCode(401); try { rc.getResponse().setContentType("text/html;charset=utf-8"); rc.getResponse().getWriter().write("没有传递正确参数,请校验后重试~"); } catch (IOException e) { e.printStackTrace(); } return null; } }
启动类
package com.cloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @EnableEurekaClient @SpringBootApplication @EnableZuulProxy public class StartZuul { public static void main(String[] args) { SpringApplication.run(StartZuul.class,args); } }
效果
1、
2、
以上是关于SpringCloud过滤filter的主要内容,如果未能解决你的问题,请参考以下文章
springCloud学习05之api网关服务zuul过滤器filter
SpringCloud使用Filter过滤器实现@RequestParam参数加密
SpringCloud - Spring Cloud Netflix 之 Zuul网关;过滤器filter
SpringCloud - Spring Cloud 之 Gateway网关,Route路由,Predicate 断言,Filter 过滤器(十三)