Ich wollte selbst eine Antwort und war nicht zufrieden mit der JDBCRealm Antwort.
Die standardmäßigen versteckten Ordner "WEB-INF" und "META-INF" sind in der Statischen Ressourcenlogik fest codiert, daher scheint derselbe Mechanismus unerschwinglich zu sein. Sie müssten einige Kombinationen von DefaultServlet, StandardContext und StandardContextValve ersetzen oder ändern. Es ist ein Chaos.
Aber es gibt zwei einfache Möglichkeiten, die ich versuchte, die Filterung, nach der Sie suchen, zu erreichen.
ein Filter
Sie verwenden können einen generischen Servlet-Filter schreiben 404-Fehler für jede Datei zurück eine Liste übereinstimmen. Du könntest diese Liste als Environment Entries in context.xml, in einem properties file auf dem Classpath, in einer Datenbank gespeichert, oder was auch immer deine Präferenz (auch als fest codierte Strings, wenn Sie eine Art Masochist sind).
ein Valve(Tomcat-spezifisch)
Tomcat Ventile erreichen so ziemlich die gleichen wie Filter, aber auf einem niedrigeren Niveau verwenden. Sie sind nicht Teil der Servlet Spec, so dass Ihre App nicht zu anderen Servlet Containern portierbar ist. In meinen Experimenten passiert das Senden von 404-Antworten nicht denselben Kanal wie 404-Antworten, die normalerweise in Ihrer Anwendung gesendet werden (wenn Sie z. B. benutzerdefinierte 404-Seiten oder Handler einrichten, werden sie nicht verwendet, wenn 404 von einem Valve zurückgegeben wird)