¿Cómo puedo usar AOP para interceptar el constructor de File, FileReader, FileWriter, FileInputStream y FileOutputStream?

Quiero interceptar el constructor de File, FileReader, FileWriter, FileInputStream y FileOutputStream y evitar que cualquier nombre de archivo contenga ".." (para evitar ataques transversales de ruta) o "\ 0" (para evitar ataques de caracteres nulos de nombre de archivo).

Tengo otra pregunta abierta sobre cómo hacer lo mismo con SecurityManager, pero nadie la ha respondido aún, así que esperaba que este método alternativo funcionara.

Esto es para una aplicación web de primavera en Tomcat.

Sé que podría hacer esto manualmente creando mis propias clases SafeFile, SafeFileReader, etc., y modificando el código para usarlas. Sin embargo, hay 960 lugares en nuestro código que usan los constructores para esos objetos, por lo que preferiría evitarlo a menos que sea la única forma.

Respuestas a la pregunta(2)

Su respuesta a la pregunta