宋子宪博客

Zuul网关使用过滤器验证客户端是否有登陆

@Component
public class TokenFilter  extends ZuulFilter {

    public Object run() throws ZuulException {
        // 获取上下文
        RequestContext currentContext = RequestContext.getCurrentContext();
        HttpServletRequest request = currentContext.getRequest();
        String userToken = request.getParameter("userToken");
        //如果toKen等于空
        if (StringUtils.isEmpty(userToken)) {
            currentContext.setSendZuulResponse(false);
            //返回状态码
            currentContext.setResponseStatusCode(401);
            //返回错误信息
            currentContext.setResponseBody("userToken is null");
            return null;
        }
        // 否则正常执行业务逻辑.....
        return null;
    }

    // 判断过滤器是否生效
    public boolean shouldFilter() {

        return true;
    }

    // 过滤器的执行顺序。当请求在一个阶段的时候存在多个多个过滤器时,需要根据该方法的返回值依次执行
    public int filterOrder() {

        return 0;
    }

    // 过滤器类型 pre 表示在 请求之前进行拦截
    public String filterType() {

        return "pre";
    }

}

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »