From 111690823fb97f292c59d1641cef9140bb083e73 Mon Sep 17 00:00:00 2001 From: twilight0620 Date: Tue, 12 Jul 2022 18:15:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=9B=9E=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../website/config/ZuulConfiguration.java | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/edgegallery/website/config/ZuulConfiguration.java b/src/main/java/org/edgegallery/website/config/ZuulConfiguration.java index d6cadff..296674c 100644 --- a/src/main/java/org/edgegallery/website/config/ZuulConfiguration.java +++ b/src/main/java/org/edgegallery/website/config/ZuulConfiguration.java @@ -34,33 +34,39 @@ import org.springframework.cloud.netflix.zuul.web.ZuulHandlerMapping; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; + @Configuration public class ZuulConfiguration { + private static final String ERROR_PATH = "/error"; + private static final String METHOD = "lookupHandler"; + + @Bean public ZuulPostProcessor zuulPostProcessor(@Autowired RouteLocator routeLocator, - @Autowired ZuulController zuulController, @Autowired(required = false) ErrorController errorController) { - return new ZuulPostProcessor(zuulController, routeLocator, errorController); + @Autowired ZuulController zuulController, + @Autowired(required = false) ErrorController errorController) { + return new ZuulPostProcessor(routeLocator, zuulController, errorController); } - private enum LookupHandlerClassCallbackFilter implements CallbackFilter { + private enum LookupHandlerCallbackFilter implements CallbackFilter { INSTANCE; @Override public int accept(Method method) { - if ("lookupHandler".equals(method.getName())) { + if (METHOD.equals(method.getName())) { return 0; } return 1; } } - private enum GetErrorPathMethodInterceptor implements MethodInterceptor { + private enum LookupHandlerMethodInterceptor implements MethodInterceptor { INSTANCE; @Override public Object intercept(Object target, Method method, Object[] args, MethodProxy methodProxy) throws Throwable { - if ("/error".equals(args[0])) { + if (ERROR_PATH.equals(args[0])) { return null; } return methodProxy.invokeSuper(target, args); @@ -69,15 +75,13 @@ public class ZuulConfiguration { private static final class ZuulPostProcessor implements BeanPostProcessor { - private final ZuulController zuulController; - private final RouteLocator routeLocator; - + private final ZuulController zuulController; private final boolean hasErrorController; - ZuulPostProcessor(ZuulController zuulController, RouteLocator routeLocator, ErrorController errorController) { - this.zuulController = zuulController; + ZuulPostProcessor(RouteLocator routeLocator, ZuulController zuulController, ErrorController errorController) { this.routeLocator = routeLocator; + this.zuulController = zuulController; this.hasErrorController = (errorController != null); } @@ -86,8 +90,8 @@ public class ZuulConfiguration { if (hasErrorController && (bean instanceof ZuulHandlerMapping)) { Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(ZuulHandlerMapping.class); - enhancer.setCallbackFilter(LookupHandlerClassCallbackFilter.INSTANCE); - enhancer.setCallbacks(new Callback[] {GetErrorPathMethodInterceptor.INSTANCE, NoOp.INSTANCE}); + enhancer.setCallbackFilter(LookupHandlerCallbackFilter.INSTANCE); // only for lookupHandler + enhancer.setCallbacks(new Callback[] {LookupHandlerMethodInterceptor.INSTANCE, NoOp.INSTANCE}); Constructor ctor = ZuulHandlerMapping.class.getConstructors()[0]; return enhancer.create(ctor.getParameterTypes(), new Object[] {routeLocator, zuulController}); } -- Gitee