Как я могу использовать AOP для перехвата конструктора File, FileReader, FileWriter, FileInputStream и FileOutputStream?

Я хочу перехватить конструктор File, FileReader, FileWriter, FileInputStream и FileOutputStream и не допустить, чтобы в именах файлов содержалось «..» (для предотвращения атак путем обхода пути) или «\ 0» (для предотвращения атак с пустыми символами в имени файла).

У меня есть еще один открытый вопрос о том, как сделать то же самое с помощью SecurityManager, но никто еще не ответил на него, поэтому я надеялся, что этот альтернативный метод будет работать.

Это для весеннего веб-приложения на tomcat.

Я знаю, что мог бы сделать это вручную, создав собственные классы SafeFile, SafeFileReader и т. Д. И изменив код, чтобы использовать их вместо этого. Однако в нашем коде 960 мест, в которых используются конструкторы для этих объектов, поэтому я бы предпочел этого избегать, если только это не единственный способ.