Преобразование пути сервлета Spring Dispatcher в ZuulServlet - PullRequest
1 голос
/ 11 апреля 2019

При загрузке больших файлов с помощью Zuul Proxy - Чтобы обойти Spring DispatcherServlet, я изменил URL: От: 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 в фильтре?

...