This is an automated email from the ASF dual-hosted git repository.
remm pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/9.0.x by this push:
new 2e58ae8 Use URI filtering in the default source implementation
2e58ae8 is described below
commit 2e58ae8372f9e0e588681daa2a61cb7ad1e2500e
Author: remm <[email protected]>
AuthorDate: Fri Jan 29 15:13:50 2021 +0100
Use URI filtering in the default source implementation
Not actually used except in the testsuite, so no real change.
---
.../tomcat/util/file/ConfigurationSource.java | 34 +++++++++++++---------
1 file changed, 20 insertions(+), 14 deletions(-)
diff --git a/java/org/apache/tomcat/util/file/ConfigurationSource.java
b/java/org/apache/tomcat/util/file/ConfigurationSource.java
index 57d5ce4..4dec49a 100644
--- a/java/org/apache/tomcat/util/file/ConfigurationSource.java
+++ b/java/org/apache/tomcat/util/file/ConfigurationSource.java
@@ -26,6 +26,8 @@ import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
+import org.apache.tomcat.util.buf.UriUtil;
+
/**
* Abstracts configuration file storage. Allows Tomcat embedding using the
regular
* configuration style.
@@ -40,17 +42,19 @@ public interface ConfigurationSource {
protected final URI userDirUri = userDir.toURI();
@Override
public Resource getResource(String name) throws IOException {
- File f = new File(name);
- if (!f.isAbsolute()) {
- f = new File(userDir, name);
- }
- if (f.isFile()) {
- FileInputStream fis = new FileInputStream(f);
- return new Resource(fis, f.toURI());
+ if (!UriUtil.isAbsoluteURI(name)) {
+ File f = new File(name);
+ if (!f.isAbsolute()) {
+ f = new File(userDir, name);
+ }
+ if (f.isFile()) {
+ FileInputStream fis = new FileInputStream(f);
+ return new Resource(fis, f.toURI());
+ }
}
URI uri = null;
try {
- uri = getURI(name);
+ uri = userDirUri.resolve(name);
} catch (IllegalArgumentException e) {
throw new FileNotFoundException(name);
}
@@ -63,12 +67,14 @@ public interface ConfigurationSource {
}
@Override
public URI getURI(String name) {
- File f = new File(name);
- if (!f.isAbsolute()) {
- f = new File(userDir, name);
- }
- if (f.isFile()) {
- return f.toURI();
+ if (!UriUtil.isAbsoluteURI(name)) {
+ File f = new File(name);
+ if (!f.isAbsolute()) {
+ f = new File(userDir, name);
+ }
+ if (f.isFile()) {
+ return f.toURI();
+ }
}
return userDirUri.resolve(name);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]