ehcache SimpleCachingHeadersPageCachingFilter с добавлением X-XSS-Protection и X-Content-Type-Options - PullRequest
0 голосов
/ 04 октября 2011

У меня настроен SimpleCachingHeadersPageCachingFilter в моем файле web.xml, и он отлично работает, но как мне добавить другие элементы в заголовок, например:

X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block

больше информации, но не повезло.

1 Ответ

1 голос
/ 04 октября 2011

Все есть в коде и в JavaDocs.Для начала я бы расширил SimpleCachingHeadersPageCachingFilter и переопределил buildPage():

public class CustomHeadersPageCachingFilter extends SimpleCachingHeadersPageCachingFilter {

    @Override
    protected PageInfo buildPage(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws AlreadyGzippedException, Exception {
        PageInfo pageInfo = super.buildPage(request, response, chain);
        headers.add(new Header<String>("X-Content-Type-Options", "nosniff"));
        headers.add(new Header<String>("X-XSS-Protection", "1; mode=block"));
        return pageInfo;
    }
}

Однако JavaDoc для метода, который мы переопределяем, утверждает, что:

Для управления собственными заголовками кэширования,use {@link SimplePageCachingFilter}.

SimplePageCachingFilter - это базовый класс SimpleCachingHeadersPageCachingFilter, который расширяется прямо сейчас.Однако я думаю, что этот комментарий предлагает использовать первый класс, если мы хотим использовать совершенно разные заголовки.Если мы хотим сохранить стандартные заголовки (добавленные последним классом через super.buildPage()), этот подход кажется верным.

Отказ от ответственности: обратите внимание, что расширение поведения класса путем его расширения и переопределение некоторых методов путем первого вызова super versionи добавление некоторой логики не лучший метод ОО.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...