#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?