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」版。查看和发表评论请点击:完整版 »