Конфигурация «Контент-расположение заголовка» в «Apache HTTP Server» - PullRequest
0 голосов
/ 13 мая 2019

Я делаю запрос на создание XML-файла.Который затем должен отображаться в браузере.Но если XML-файл кэшируется, он загружается.Я решил эту проблему, создав фильтр, который будет изменять заголовок.Но этот вариант не подходит.Я знаю, что могу настроить «Apache HTTP Server».Пожалуйста, дайте совет.

@Component
@SlingServletFilter(
        scope = {SlingServletFilterScope.REQUEST},
        extensions = {"xml"}
)
public class StaticFilesFilter implements Filter {

    private static final String CONTENT_DISPOSITION_HEADER = "Content-Disposition";
    private static final String CONTENT_DISPOSITION_HEADER_VALUE_INLINE = "inline";

    @Override
    public void init(FilterConfig filterConfig) {
        //Do nothing
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {

        final SlingHttpServletRequest slingRequest = (SlingHttpServletRequest) request;
        final SlingHttpServletResponse slingResponse = (SlingHttpServletResponse) response;

        slingResponse.setHeader(CONTENT_DISPOSITION_HEADER, CONTENT_DISPOSITION_HEADER_VALUE_INLINE);
        filterChain.doFilter(slingRequest, slingResponse);
    }

    @Override
    public void destroy() {
        //Do nothing
    }

}

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 08 июля 2019

Если я правильно понимаю проблему, проблема заключается в самом кэшировании.

XML-файл, вероятно, кэшируется в диспетчере и затем подается из кэша без заголовка «Content-Disposition». Чтобы решить эту проблему, необходимо настроить конфигурацию диспетчера. Есть хотя бы несколько способов, вот два из них:

  1. Заголовок кэша 'Content-Disposition' в диспетчере / кэш { / заголовки { "Content-Disposition" }
  2. Жесткий код правил на Apache, для каждого XML-запроса в определенном месте добавьте заголовок, используя mod_headers https://httpd.apache.org/docs/current/mod/mod_headers.html
...