Я работаю с ESAPI, чтобы попытаться проверить пути к каталогам Windows. По какой-то причине часть моего пути к каталогу с именем \14\ преобразуется в CRLF. Ошибка, которую я получаю, приведена ниже, что я не правильно понимаю? Я чувствую, что мое регулярное выражение должно работать.
WARN IntrusionDetector [SECURITY FAILURE Anonymous:null@unknown -> /project-test/IntrusionDetector] Invalid input: context=directoryPath, type(DirectoryName)=^[a-zA-Z0-9:/\\!@#$%^&{}\[\]()_+\-=,.~'` ]{1,255}$, input=C:\UsersTESTUS~1AppDataLocalTempTestCase8002TempWorkSpace, orig=C:\Users\TESTUS~1\AppData\Local\Temp\14\TestCase8002TempWorkSpace
Как видите, я использую регулярное выражение: ^[a-zA-Z0-9:/\!@#$%^&{}[]()_+-=,.~'` ]$
Мой ввод: C:\Users\TESTUS~1\AppData\Local\Temp\14\TestCase8002TempWorkSpace
Вывод после канонизации и проверки ESAPI: C:\UsersTESTUS~1AppDataLocalTempTestCase8002TempWorkSpace
Вот строка кода, из-за которой я получаю сообщение об ошибке;
String validatedSourcePath = ESAPI.validator().getValidInput("directoryUnzip", directory, "DirectoryName", 255, false);
File validFile = new File(validatedSourcePath);