Преобразование пути сервлета Spring Dispatcher в ZuulServlet

#java #spring #spring-boot #netflix-zuul

#java #spring #spring-загрузка #netflix-zuul

Вопрос:

При загрузке больших файлов с использованием прокси-сервера Zuul — чтобы обойти Spring DispatcherServlet, я изменил URL: From: http://localhost:8081/MyService/file Кому: http://localhost:8081/zuul/MyService/file

Сохраненное отключение многочастной загрузки Spring:

 spring:
    http:
        multipart:
            enabled: false
  

Но я не хочу использовать какой-либо дополнительный префикс (/ zuul/) для моего клиентского URI (host / MyService /**), поэтому в моем предварительном фильтре я проверяю, является ли исходный запрос составным или нет?

И если запрос состоит из нескольких частей, я пытаюсь обновить URI моего запроса до host/zuul/MyService . Также я хочу установить для логического isDispatcherServletRequest значение false .

Вот мой предварительный фильтр —

 @Override
    public Object run() throws ZuulException {



        RequestContext ctx = RequestContext.getCurrentContext();
        HttpServletRequest request = ctx.getRequest();
        System.out.println("Request type of content type " request.getContentType());
        String requestType = request.getContentType();
        if(requestType.contains("multipart/form-data")) {

            String originalRequestPath = request.getRequestURI();
            String modifiedRequestPath = "/zuul"   originalRequestPath;
            ctx.put("REQUEST_URI_KEY", modifiedRequestPath);



        }
        return null;
    }
  

Вопрос 1. Как мне поместить новый URI в RequestContext?

Вопрос 2. Как отключить DispatcherServletRequest в filter?