赞
踩
涉及到的包:
import com.netflix.zuul.context.RequestContext;
import javax.servlet.http.HttpServletRequest;
public Object run() throws ZuulException { RequestContext currentContext = RequestContext.getCurrentContext(); HttpServletRequest request = currentContext.getRequest(); HttpServletResponse response = currentContext.getResponse(); String token = request.getParameter("token");//获取出发网关url地址中的token请求参数的值。模仿获取密码。http://localhost:15001/04userprovider-eureka/provider/user/1?token=1 if (Integer.valueOf(token)==1) {//测测试token这个参数等不等于1,等于1就通过,不等于1就走下面,不通过并且在页面输出老王:第一贱 currentContext.setSendZuulResponse(true);//true意味着放行。 return null; } else { response.setContentType("text/html;charset=utf-8"); currentContext.setResponseBody("老王:第一贱"); System.err.println("前置过滤器first执行了"); //拦截请求,拦截请求不会影响后面的过滤器的执行 currentContext.setSendZuulResponse(false);//false意味着不放行。其实就是向map中存放了一个值为false。这里设置的false也就导致SecondFilter、ThirdFilter中的shouldFilter方法接受的值为false,也就是这两个过滤器都不执行 return null; } // return null;//要如果上面不写,统一写在这里会包空指针,不知道为啥。这里好像没什么实际意义。。。。。。。。null就代表不放行,页面返回的数据就是这里设置的 }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。