Spring Cloud Zuul Query для параметров кодирования - PullRequest
0 голосов
/ 13 сентября 2018

Я использую прокси-сервер Spring cloud zuul для добавления параметра запроса в запрос.

Поэтому был применен фильтр маршрута:

@Override
public Object run() {

    RequestContext context = RequestContext.getCurrentContext();
    Map<String, List<String>> newParameterMap = new HashMap<>();
    Map<String, String[]> parameterMap = context.getRequest().getParameterMap();

    // getting the current parameter
    for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
        String key = entry.getKey();
        String[] values = entry.getValue();
        newParameterMap.put(key, Arrays.asList(values));
    }
    // add new parameter grp
    newParameterMap.put("GRP", Arrays.asList(value));
    context.setRequestQueryParams(newParameterMap);
    return null;
}

Запрос поступает в кодировке iso-8859-1, но изменен в Zuul на Utf-8

Example:
in: &ORT_BEZ=Geb%E4ude
out: &ORT_BEZ=Geb%EF%BF%BDude

Это вызывает проблемы в устаревшем веб-приложении, которое находится за прокси-сервером.

Если я использую опцию "force-original-query-string-encoding = true" в application.properties, запрос передается правильно, но параметр запроса не добавляется.

Как заставить zuul сохранить кодировку параметров запроса, а также добавить параметр запроса?

...