You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by xy...@apache.org on 2018/10/18 17:44:51 UTC
[26/50] [abbrv] hadoop git commit: HDDS-563. Support hybrid
VirtualHost style URL. Contributed by Bharat Viswanadham.
HDDS-563. Support hybrid VirtualHost style URL. Contributed by Bharat Viswanadham.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/9df1c84b
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/9df1c84b
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/9df1c84b
Branch: refs/heads/HDDS-4
Commit: 9df1c84be0f86f6c26030ba1b98e9a2b93dc743c
Parents: 5085e5f
Author: Márton Elek <el...@apache.org>
Authored: Wed Oct 17 11:34:03 2018 +0200
Committer: Márton Elek <el...@apache.org>
Committed: Wed Oct 17 12:43:44 2018 +0200
----------------------------------------------------------------------
.../hadoop/ozone/s3/VirtualHostStyleFilter.java | 19 ++++++---------
.../ozone/s3/TestVirtualHostStyleFilter.java | 25 +++++++++++---------
2 files changed, 21 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/9df1c84b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/VirtualHostStyleFilter.java
----------------------------------------------------------------------
diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/VirtualHostStyleFilter.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/VirtualHostStyleFilter.java
index 3bd690b..4cf78b6 100644
--- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/VirtualHostStyleFilter.java
+++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/VirtualHostStyleFilter.java
@@ -49,8 +49,6 @@ public class VirtualHostStyleFilter implements ContainerRequestFilter {
private static final Logger LOG = LoggerFactory.getLogger(
VirtualHostStyleFilter.class);
- private static final Pattern URL_SCHEME_PATTERN = Pattern.compile("" +
- "(?<bucket>(.+))\\.(?<volume>(.+))\\.");
@Inject
private OzoneConfiguration conf;
@@ -83,24 +81,21 @@ public class VirtualHostStyleFilter implements ContainerRequestFilter {
// address length means it is virtual host style, we need to convert to
// path style.
if (host.length() > domain.length()) {
- String bothNames = host.substring(0, host.length() - domain.length());
- LOG.debug("Both volume name and bucket name is {}", bothNames);
- Matcher matcher = URL_SCHEME_PATTERN.matcher(bothNames);
+ String bucketName = host.substring(0, host.length() - domain.length());
- if (!matcher.matches()) {
+ if(!bucketName.endsWith(".")) {
+ //Checking this as the virtual host style pattern is http://bucket.host/
throw getException("Invalid S3 Gateway request {" + requestContext
.getUriInfo().getRequestUri().toString() +"}:" +" Host: {" + host
+ " is in invalid format");
+ } else {
+ bucketName = bucketName.substring(0, bucketName.length() - 1);
}
-
- String bucketStr = matcher.group("bucket");
- String volumeStr = matcher.group("volume");
-
- LOG.debug("bucket {}, volumeStr {}", bucketStr, volumeStr);
+ LOG.debug("Bucket name is {}", bucketName);
URI baseURI = requestContext.getUriInfo().getBaseUri();
String currentPath = requestContext.getUriInfo().getPath();
- String newPath = String.format("%s/%s", volumeStr, bucketStr);
+ String newPath = bucketName;
if (currentPath != null) {
newPath += String.format("%s", currentPath);
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/9df1c84b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestVirtualHostStyleFilter.java
----------------------------------------------------------------------
diff --git a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestVirtualHostStyleFilter.java b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestVirtualHostStyleFilter.java
index ac8fa87..5548c77 100644
--- a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestVirtualHostStyleFilter.java
+++ b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestVirtualHostStyleFilter.java
@@ -31,6 +31,8 @@ import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.SecurityContext;
import java.net.URI;
+import static org.junit.Assert.fail;
+
/**
* This class test virtual host style mapping conversion to path style.
*/
@@ -87,10 +89,10 @@ public class TestVirtualHostStyleFilter {
virtualHostStyleFilter.setConfiguration(conf);
ContainerRequest containerRequest = createContainerRequest("mybucket" +
- ".myvolume.localhost:9878", "/myfile", true);
+ ".localhost:9878", "/myfile", true);
virtualHostStyleFilter.filter(containerRequest);
URI expected = new URI("http://" + s3HttpAddr +
- "/myvolume/mybucket/myfile");
+ "/mybucket/myfile");
Assert.assertEquals(expected, containerRequest.getRequestUri());
}
@@ -102,10 +104,10 @@ public class TestVirtualHostStyleFilter {
virtualHostStyleFilter.setConfiguration(conf);
ContainerRequest containerRequest = createContainerRequest(s3HttpAddr,
- "/myvolume/mybucket/myfile", false);
+ "/mybucket/myfile", false);
virtualHostStyleFilter.filter(containerRequest);
URI expected = new URI("http://" + s3HttpAddr +
- "/myvolume/mybucket/myfile");
+ "/mybucket/myfile");
Assert.assertEquals(expected, containerRequest.getRequestUri());
}
@@ -118,10 +120,9 @@ public class TestVirtualHostStyleFilter {
virtualHostStyleFilter.setConfiguration(conf);
ContainerRequest containerRequest = createContainerRequest("mybucket" +
- ".myvolume.localhost:9878", null, true);
+ ".localhost:9878", null, true);
virtualHostStyleFilter.filter(containerRequest);
- URI expected = new URI("http://" + s3HttpAddr +
- "/myvolume/mybucket");
+ URI expected = new URI("http://" + s3HttpAddr + "/mybucket");
Assert.assertEquals(expected, containerRequest.getRequestUri());
}
@@ -134,7 +135,7 @@ public class TestVirtualHostStyleFilter {
virtualHostStyleFilter.setConfiguration(conf);
ContainerRequest containerRequest = createContainerRequest("mybucket" +
- ".myvolume.localhost:9999", null, true);
+ ".localhost:9999", null, true);
try {
virtualHostStyleFilter.filter(containerRequest);
} catch (InvalidRequestException ex) {
@@ -144,16 +145,18 @@ public class TestVirtualHostStyleFilter {
}
@Test
- public void testVirtualHostStyleWithoutVolumeName() throws Exception {
+ public void testIncorrectVirtualHostStyle() throws
+ Exception {
VirtualHostStyleFilter virtualHostStyleFilter =
new VirtualHostStyleFilter();
virtualHostStyleFilter.setConfiguration(conf);
- ContainerRequest containerRequest = createContainerRequest("mybucket." +
- ".localhost:9878", null, true);
+ ContainerRequest containerRequest = createContainerRequest("mybucket" +
+ "localhost:9878", null, true);
try {
virtualHostStyleFilter.filter(containerRequest);
+ fail("testIncorrectVirtualHostStyle failed");
} catch (InvalidRequestException ex) {
GenericTestUtils.assertExceptionContains("invalid format", ex);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org