🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
``` @Component public class MyFilter extends ZuulFilter { @Override public String filterType() { return "pre"; } @Override public int filterOrder() { return 0; } @Override public boolean shouldFilter() { return true; } @Override public Object run() throws ZuulException { RequestContext currentContext = RequestContext.getCurrentContext(); HttpServletRequest request = currentContext.getRequest(); String token = request.getParameter("token"); if (token == null){ currentContext.setSendZuulResponse(false); currentContext.setResponseStatusCode(401); try { currentContext.getResponse().getWriter().write("token is empty"); } catch (IOException e) { return null; } } return null; } } ``` ``` @Component public class MyFallbackProvider implements FallbackProvider { @Override public String getRoute() { return "eureka-client"; } @Override public ClientHttpResponse fallbackResponse(String route, Throwable cause) { return new ClientHttpResponse() { @Override public HttpStatus getStatusCode() throws IOException { return HttpStatus.OK; } @Override public int getRawStatusCode() throws IOException { return HttpStatus.OK.value(); } @Override public String getStatusText() throws IOException { return HttpStatus.OK.getReasonPhrase(); } @Override public void close() { } @Override public InputStream getBody() throws IOException { JSONObject json = new JSONObject(); json.put("status", "501"); json.put("msg", "后台接口错误"); return new ByteArrayInputStream(json.toJSONString().getBytes("UTF-8")); } @Override public HttpHeaders getHeaders() { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8); return httpHeaders; } }; } } ```