Я пытаюсь включить фильтр HttpHeaderSecurityFilter в Tomcat для борьбы с атаками кликджекинга. Я хочу, чтобы это применялось ко всем приложениям, поэтому раскомментировал записи по умолчанию ‹filter› и ‹filter-mapping› для этого фильтра в собственном файле Tomcat conf/web.xml.
Насколько я могу судить, Tomcat полностью игнорирует это. Я добавил файл META-INF/context.xml в одно из своих веб-приложений следующим образом, чтобы увидеть эффективный файл web.xml, который Tomcat использует для приложения после слияния файла conf/web.xml с собственным файлом приложения.
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Context logEffectiveWebXml="true"></Context>
Результирующий вывод в catalina.log выглядит корректно (содержимое обоих файлов объединено), за исключением того, что записи фильтра из conf/web.xml отсутствуют. Я попытался ввести туда свои собственные дополнительные записи фильтра и обнаружил, что они также не отображаются в действующем файле web.xml.
Если я скопирую фильтр HttpHeaderSecurityFilter и записи сопоставления фильтров в собственный файл web.xml веб-приложения, он будет работать нормально (но это, очевидно, не то, что я хочу!)
Есть ли какой-нибудь трюк, чтобы заставить Tomcat учитывать записи фильтра в conf/web.xml?
В конечном итоге мне нужно, чтобы это работало как в Tomcat 7, так и в 8. (Я знаю, что встроенный фильтр был добавлен только в Tomcat 7.0.63.)