Я хотел получить ответ на этот вопрос сам, и не был удовлетворен ответом JDBCRealm.
По умолчанию скрытые папки «WEB-INF» и «META-INF» жестко запрограммированы в логике статического ресурса, поэтому использование одного и того же механизма представляется чрезмерно трудным. Вам придется заменить или изменить некоторую комбинацию DefaultServlet , StandardContext и StandardContextValve . Это беспорядок.
Но есть два простых способа, которыми я пытался выполнить фильтрацию, к которой вы стремитесь.
Использование фильтра
Вы можете написать универсальный фильтр сервлетов, который будет возвращать 404 ошибки для любого файла, соответствующего некоторому списку. Вы можете настроить этот список как Записи среды в context.xml, в файле свойств на пути к классам, сохраненном в базе данных, или по вашему усмотрению (даже в виде жестко закодированных строк, если ты какой-то мазохист).
Использование клапана (для Tomcat)
Tomcat Valves выполняет почти то же самое, что и Фильтры, но на более низком уровне. Они не являются частью Спецификации сервлета , поэтому ваше приложение не будет переносимым на другие контейнеры сервлета. Кроме того, в моих экспериментах с этим отправка 404 ответов не проходила по тому же каналу, что и 404 ответа, обычно отправляемых в ваше приложение (например, если вы настраивали пользовательские страницы 404 или обработчики, они не используются, когда 404 возвращается из Valve )