У вас есть два варианта: импортируйте самозаверяющий сертификат в хранилище java для каждого jvm, на котором будет запущено программное обеспечение, или попробуйте недействительную фабрику ssl:
jdbc:postgresql://myserver.com:5432/mydatabasename?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
Если Вы не возражаете против ложных положительных сторон для идентификации путей, то действительно просто необходимо удостовериться, что путь не содержит NUL
символ; все остальное разрешено (в частности, /
символ разделителя имени). Лучший подход должен был бы разрешить данный путь с помощью соответствующего файла функция IO (например, File.exists()
, File.getCanonicalFile()
в Java).
ответ Long:
Это и операционная система и файловая система зависимый. Например, сравнение Википедии файловых систем примечания, что помимо ограничений, наложенных файловой системой,
, MS-DOS, Microsoft Windows и ОС/2 запрещают символы
\ / : ? * " > < |
иNUL
в именах файлов и именах каталогов через все файловые системы . Нельды и Linux запрещают символы/
иNUL
в именах файлов и именах каталогов через все файловые системы .
В Windows, следующий названия зарезервированного устройства также не разрешены как имена файлов:
CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5,
COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4,
LPT5, LPT6, LPT7, LPT8, LPT9
Надлежащее регулярное выражение для соответствия всем путям UNIX: [^\\0] +
таким образом, один или несколько символов, которые не являются NUL.
Я не уверен, насколько распространенный проверка regex на это через системы, но большинство языков программирования (особенно кросс-платформенные) обеспечивает, "файл существует" проверка, которая возьмет такого рода вещь во внимание
Из любопытства, где эти пути вводят? Вы могли управлять, это к большему отступает до такой степени, когда, Вы не должны будете проверять отдельные части пути? Например, с помощью диалогового окна селектора файла?