zoukankan      html  css  js  c++  java
  • Zuul Pre和Post过滤器

    一、项目架构图

    二、前置过滤器

    @Component
    public class TokenFilter  extends ZuulFilter{
        @Override
        public String filterType() {
            return PRE_TYPE;
        }
    
        @Override
        public int filterOrder() {
            return PRE_DECORATION_FILTER_ORDER - 1;
        }
    
        @Override
        public boolean shouldFilter() {
            return true;
        }
    
        @Override
        public Object run() throws ZuulException {
            RequestContext requestContext = RequestContext.getCurrentContext();
            HttpServletRequest request =  requestContext.getRequest();
    
            //这里从url参数获取,也可以从cookie,header里获取
            String token = request.getParameter("token");
            if(StringUtils.isEmpty(token)){
                //不通过
                requestContext.setSendZuulResponse(false);
                requestContext.setResponseStatusCode(HttpStatus.SC_UNAUTHORIZED);
            }
            return null;
        }
    }
    

      

    带了token就能正常访问

    否则,无法访问,返回401

    三、后置过滤器

    1、增加后置过滤器

    @Component
    public class AddResponseHeaderFilter extends ZuulFilter {
        @Override
        public String filterType() {
            return POST_TYPE;
        }
    
        @Override
        public int filterOrder() {
            return SEND_RESPONSE_FILTER_ORDER - 1;
        }
    
        @Override
        public boolean shouldFilter() {
            return true;
        }
    
        @Override
        public Object run() throws ZuulException {
            RequestContext requestContext = RequestContext.getCurrentContext();
           HttpServletResponse response = requestContext.getResponse();
           response.setHeader("X-Foo", UUID.randomUUID().toString());
            return null;
        }
    }
    

      在回复后里增加X-Foo,值为UUID

    2、查看结果

  • 相关阅读:
    ruilei.cnblogs 访问量突破20万
    VSTS2008 Load Test Agent
    失落的星球 Lost Planet 秘籍
    C#去除特殊字符串
    Linq Coding Part Nine(IEnumerable、IQueryable、Set)
    Web Services Software Factory tutorial (1 of 5)
    迅雷新闻快讯区JS代码剖析
    Interfaces Topic
    前台如何调用后台事件
    [关注]个税起征点8000元什么时候到来?
  • 原文地址:https://www.cnblogs.com/linlf03/p/10388973.html
Copyright © 2011-2022 走看看