涉及到的包:
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就代表不放行,页面返回的数据就是这里设置的

    }

在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐