private void updateLocation() { String pathText = wPath.getText(); String scheme = pathText.isEmpty() ? HDFS_SCHEME : UriParser.extractScheme( pathText ); if ( scheme != null ) { List<VFSScheme> availableVFSSchemes = getAvailableVFSSchemes(); for ( int i = 0; i < availableVFSSchemes.size(); i++ ) { VFSScheme s = availableVFSSchemes.get( i ); if ( scheme.equals( s.scheme ) ) { wLocation.select( i ); selectedVFSScheme = s; } } } }
@SuppressFBWarnings(value = "PATH_TRAVERSAL_IN", justification = "input files are specified by admin, not unchecked user input") @Override public File replicateFile(FileObject srcFile, FileSelector selector) throws FileSystemException { String baseName = srcFile.getName().getBaseName(); try { String safeBasename = UriParser.encode(baseName, TMP_RESERVED_CHARS).replace('%', '_'); File file = File.createTempFile("vfsr_", "_" + safeBasename, tempDir); file.deleteOnExit(); final FileObject destFile = context.toFileObject(file); destFile.copyFrom(srcFile, selector); return file; } catch (IOException e) { throw new FileSystemException(e); } }
/** * Decodes the String. * * @param uri The String to decode. * @throws FileSystemException if an error occurs. */ public static void checkUriEncoding(final String uri) throws FileSystemException { decode(uri); }
@Override public FileName parseUri(final VfsComponentContext context, final FileName base, final String uri) throws FileSystemException { final StringBuilder name = new StringBuilder(); // Extract the scheme String scheme = UriParser.extractScheme(uri, name); if (scheme == null) { scheme = "file"; } // Remove encoding, and adjust the separators UriParser.canonicalizePath(name, 0, name.length(), this); UriParser.fixSeparators(name); // Extract the root prefix final String rootFile = extractRootPrefix(uri, name); // Normalise the path final FileType fileType = UriParser.normalisePath(name); final String path = name.toString(); return createFileName(scheme, rootFile, path, fileType); }
@Override public FileName parseUri(final VfsComponentContext context, final FileName base, final String filename) throws FileSystemException { // FTP URI are generic URI (as per RFC 2396) final StringBuilder name = new StringBuilder(); // Extract the scheme and authority parts final Authority auth = extractToPath(filename, name); // Extract the queryString final String queryString = UriParser.extractQueryString(name); // Decode and normalise the file name UriParser.canonicalizePath(name, 0, name.length(), this); UriParser.fixSeparators(name); final FileType fileType = UriParser.normalisePath(name); final String path = name.toString(); return new URLFileName( auth.getScheme(), auth.getHostName(), auth.getPort(), getDefaultPort(), path, fileType, queryString); }
@Override public FileName parseChildUri(final VfsComponentContext context, final FileName base, final String uri) throws FileSystemException { final StringBuilder name = new StringBuilder(); // Extract the scheme String scheme = UriParser.extractScheme(uri, name); if (scheme == null) { scheme = "file"; } // Remove encoding, and adjust the separators UriParser.canonicalizePath(name, 0, name.length(), this); //todo[lene] UriParser.fixSeparators(name); // Extract the root prefix final String rootFile = extractRootPrefix(uri, name); // Normalise the path final FileType fileType = UriParser.normalisePath(name); final String path = name.toString(); return createFileName( scheme, rootFile, path, fileType); } //[IntelliJ] / in WI-2449 Invalid descendent file name "ssh:" or directory a\b (on Linux) -----
@Override public FileName parseUri(final VfsComponentContext context, final FileName base, final String filename) throws FileSystemException { // FTP URI are generic URI (as per RFC 2396) final StringBuilder name = new StringBuilder(); // Extract the scheme and authority parts final Authority auth = extractToPath(filename, name); // Decode and normalise the file name UriParser.canonicalizePath(name, 0, name.length(), this); UriParser.fixSeparators(name); final FileType fileType = UriParser.normalisePath(name); final String path = name.toString(); return new GenericFileName(auth.scheme, auth.hostName, auth.port, defaultPort, auth.userName, auth.password, path, fileType); }
final String scheme = UriParser.extractScheme(uri, buffer); UriParser.fixSeparators(buffer); UriParser.normalisePath(buffer); final String path = buffer.toString();
@Override public FileName parseUri(final VfsComponentContext context, final FileName base, final String filename) throws FileSystemException { final StringBuilder name = new StringBuilder(); // Extract the scheme and authority parts final Authority auth = extractToPath(filename, name); // extract domain String username = auth.getUserName(); final String domain = extractDomain(username); if (domain != null) { username = username.substring(domain.length() + 1); } // Decode and adjust separators UriParser.canonicalizePath(name, 0, name.length(), this); UriParser.fixSeparators(name); // Extract the share final String share = UriParser.extractFirstElement(name); if (share == null || share.length() == 0) { throw new FileSystemException("vfs.provider.smb/missing-share-name.error", filename); } // Normalise the path. Do this after extracting the share name, // to deal with things like smb://hostname/share/.. final FileType fileType = UriParser.normalisePath(name); final String path = name.toString(); return new SmbFileName(auth.getScheme(), auth.getHostName(), auth.getPort(), username, auth.getPassword(), domain, share, path, fileType); }
String queryParams = UriParser.extractQueryString(new StringBuilder(vfsURI)); String scheme = UriParser.extractScheme(this.outFileURI); properties.put(VFSConstants.SCHEME, scheme); setOutFileSystemOptionsMap(properties);
@Override public FileName parseChildUri(final VfsComponentContext context, final FileName base, final String filename) throws FileSystemException { // FTP URI are generic URI (as per RFC 2396) final StringBuilder name = new StringBuilder(); // Extract the scheme and authority parts final Authority auth = extractToPath(filename, name); // Extract the queryString final String queryString = UriParser.extractQueryString(name); // Decode and normalise the file name UriParser.canonicalizePath(name, 0, name.length(), this); //UriParser.fixSeparators(name); final FileType fileType = UriParser.normalisePath(name); final String path = name.toString(); return new URLFileName( auth.getScheme(), auth.getHostName(), auth.getPort(), getDefaultPort(), path, fileType, queryString); } }
@Override public FileName parseChildUri(final VfsComponentContext context, final FileName base, final String filename) throws FileSystemException { // FTP URI are generic URI (as per RFC 2396) final StringBuilder name = new StringBuilder(); // Extract the scheme and authority parts final Authority auth = extractToPath(filename, name); // Decode and normalise the file name UriParser.canonicalizePath(name, 0, name.length(), this); //UriParser.fixSeparators(name); final FileType fileType = UriParser.normalisePath(name); final String path = name.toString(); return new GenericFileName( auth.scheme, auth.hostName, auth.port, defaultPort, path, fileType); } //[IntelliJ] / in WI-2449 Invalid descendent file name "ssh:" or directory a\b (on Linux) -----
/** * Determines if a name is an absolute file name. * * @param name The file name. * @return true if the name is absolute, false otherwise. */ public boolean isAbsoluteName(final String name) { // TODO - this is yucky final StringBuilder b = new StringBuilder(name); try { UriParser.fixSeparators(b); extractRootPrefix(name, b); return true; } catch (final FileSystemException e) { return false; } }
@Override public FileName parseUri(final VfsComponentContext context, final FileName base, final String uri) throws FileSystemException { final StringBuilder name = new StringBuilder(); // Extract the scheme String scheme = UriParser.extractScheme(uri, name); if (scheme == null) { scheme = "file"; } // Remove encoding, and adjust the separators UriParser.canonicalizePath(name, 0, name.length(), this); UriParser.fixSeparators(name); // Extract the root prefix final String rootFile = extractRootPrefix(uri, name); // Normalise the path final FileType fileType = UriParser.normalisePath(name); final String path = name.toString(); return createFileName(scheme, rootFile, path, fileType); }
@Override public FileName parseUri(final VfsComponentContext context, final FileName base, final String filename) throws FileSystemException { // FTP URI are generic URI (as per RFC 2396) final StringBuilder name = new StringBuilder(); // Extract the scheme and authority parts final Authority auth = extractToPath(filename, name); // Extract the queryString final String queryString = UriParser.extractQueryString(name); // Decode and normalise the file name UriParser.canonicalizePath(name, 0, name.length(), this); UriParser.fixSeparators(name); final FileType fileType = UriParser.normalisePath(name); final String path = name.toString(); return new URLFileName(auth.getScheme(), auth.getHostName(), auth.getPort(), getDefaultPort(), auth.getUserName(), auth.getPassword(), path, fileType, queryString); } }
@Override public FileName parseChildUri(final VfsComponentContext context, final FileName base, final String filename) throws FileSystemException { final StringBuilder name = new StringBuilder(); // Extract the scheme final String scheme = UriParser.extractScheme(filename, name); // Extract the Layered file URI final String rootUriName = extractRootName(name); FileName rootUri = null; if (rootUriName != null) { rootUri = context.parseURI(rootUriName); } // Decode and normalise the path UriParser.canonicalizePath(name, 0, name.length(), this); //UriParser.fixSeparators(name); final FileType fileType = UriParser.normalisePath(name); final String path = name.toString(); return new LayeredFileName(scheme, rootUri, path, fileType); } //[IntelliJ] / in WI-2449 Invalid descendent file name "ssh:" or directory a\b (on Linux) -----
@Override public FileName parseUri(final VfsComponentContext context, final FileName base, final String filename) throws FileSystemException { // FTP URI are generic URI (as per RFC 2396) final StringBuilder name = new StringBuilder(); // Extract the scheme and authority parts final Authority auth = extractToPath(filename, name); // Decode and normalise the file name UriParser.canonicalizePath(name, 0, name.length(), this); UriParser.fixSeparators(name); final FileType fileType = UriParser.normalisePath(name); final String path = name.toString(); return new GenericFileName(auth.scheme, auth.hostName, auth.port, defaultPort, auth.userName, auth.password, path, fileType); }
UriParser.canonicalizePath(name, 0, name.length(), this); UriParser.fixSeparators(name); final String share = UriParser.extractFirstElement(name); if (share == null || share.length() == 0) FileType fileType = UriParser.normalisePath(name); final String path = name.toString();
/** * Determines if a name is an absolute file name. * * @param name The file name. * @return true if the name is absolute, false otherwise. */ public boolean isAbsoluteName(final String name) { // TODO - this is yucky final StringBuilder b = new StringBuilder(name); try { UriParser.fixSeparators(b); extractRootPrefix(name, b); return true; } catch (final FileSystemException e) { return false; } }
@Override public FileName parseUri(final VfsComponentContext context, final FileName base, final String uri) throws FileSystemException { final StringBuilder name = new StringBuilder(); // Extract the scheme String scheme = UriParser.extractScheme(uri, name); if (scheme == null) { scheme = "file"; } // Remove encoding, and adjust the separators UriParser.canonicalizePath(name, 0, name.length(), this); UriParser.fixSeparators(name); // Extract the root prefix final String rootFile = extractRootPrefix(uri, name); // Normalise the path final FileType fileType = UriParser.normalisePath(name); final String path = name.toString(); return createFileName( scheme, rootFile, path, fileType); }