[
https://issues.apache.org/jira/browse/VFS-376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ajesh babu updated VFS-376:
---
Remaining Estimate: 3h (was: 892h)
Original Estimate: 3h (was: 892h)
SFTP uri is throwing error when .. is using in path
---
Key: VFS-376
URL: https://issues.apache.org/jira/browse/VFS-376
Project: Commons VFS
Issue Type: Bug
Affects Versions: 2.0
Reporter: Ajesh babu
Priority: Blocker
Labels: patch
Original Estimate: 3h
Remaining Estimate: 3h
Hi
We are using apache commons vfs2 for sftp file upload download , but in one
scenario it is always giving an error like
SEVERE: FileSystemException -org.apache.commons.vfs2.FileSystemException:
Invalid absolute URI
The uri is like
sftp://sftpuser:{AFF12398KYUJN982FGTB}@172.24.0.114:22/../../../../app/utenti/sftpuser/output/transaction_CARTASI_20200429083817.csv;
The user home directory of sftpuser is 'app/utenti/sftpuser' , we want to use
another directory which is not under app/utenti/sftpuser, so we tried to
traverse the parent directory using ../../ but UriParser:normalisePath()
method is always giving error ,
in the below code portion
// A '..' element - remove the previous element
if (startElem == startFirstElem)
{
// Previous element is missing
throw new FileSystemException(
vfs.provider/invalid-relative-path.error);
}
But in jdk URI it is saying that
public URI normalize()
Normalizes this URI's path.
If this URI is opaque, or if its path is already in normal form, then
this URI is returned. Otherwise a new URI is constructed that is identical to
this URI except that its path is computed by normalizing this URI's path in a
manner consistent with RFC 2396, section 5.2, step 6, sub-steps c through f;
that is:
1.
All . segments are removed.
2.
If a .. segment is preceded by a non-.. segment then both of
these segments are removed. This step is repeated until it is no longer
applicable.
3.
If the path is relative, and if its first segment contains a colon
character (':'), then a . segment is prepended. This prevents a relative
URI with a path such as a:b/c/d from later being re-parsed as an opaque URI
with a scheme of a and a scheme-specific part of b/c/d. (Deviation from
RFC 2396)
A normalized path will begin with one or more .. segments if there were
insufficient non-.. segments preceding them to allow their removal. A
normalized path will begin with a . segment if one was inserted by step 3
above. Otherwise, a normalized path will not contain any . or .. segments.
Returns:
A URI equivalent to this URI, but whose path is in normal form
So can you please tell us how can we use ../../ in a uri for traversing to
the parent directory.
If we are passing the path like
sftp://sftpuser:{AFF12398KYUJN982FGTB}@172.24.0.114:22/output/transaction_CARTASI_20200429083817.csv
this it is working fine, in this case 'output' directory is under sftpuser's
home directory (app/utenti/sftpuser}
Please treat it as urgent and pls help us
Thanks in advance
Ajesh Babu
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira