Повторяющийся заголовок Cache-Control в приложении Spring Boot - PullRequest
2 голосов
/ 28 мая 2020

У нас есть приложение Spring Boot, которое работает в Openshift, где мы настраиваем заголовок Cache-Control следующим образом:

@Configuration
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.headers().cacheControl().disable().addHeaderWriter((httpServletRequest, httpServletResponse) -> {
            httpServletResponse.setHeader(HttpHeaders.CACHE_CONTROL, "public, max-age=86400");
        });
    }
}

В ответах HTTP есть два заголовка Cache-Control:

$ curl --header https://<our-url> --head
HTTP/1.1 200 Connection established

HTTP/1.1 200
...
Cache-Control: public, max-age=86400
...
Cache-control: private

Мы ожидаем появления первого заголовка и понятия не имеем, откуда берется второй заголовок. (Обратите внимание на строчные буквы c в названии второго заголовка.)

Есть идеи, откуда берется второй заголовок и как от него избавиться?

1 Ответ

0 голосов
/ 29 мая 2020

Я нашел ответ: Заголовок Cache-control добавлен HAProxy . HAProxy использует этот заголовок и повар ie для создания прикрепленных сеансов (т.е. чтобы убедиться, что запросы от одного и того же клиента обрабатываются одним и тем же модулем).

См. этот вопрос для подробностей .

Короче говоря, вы можете отключить это поведение с помощью

oc annotate route <myroute> haproxy.router.openshift.io/disable_cookies='true'
...