|
@@ -31,6 +31,7 @@ import javax.ws.rs.core.HttpHeaders;
|
|
|
import javax.ws.rs.core.SecurityContext;
|
|
|
import java.net.URI;
|
|
|
|
|
|
+import static org.junit.Assert.assertTrue;
|
|
|
import static org.junit.Assert.fail;
|
|
|
|
|
|
/**
|
|
@@ -55,16 +56,27 @@ public class TestVirtualHostStyleFilter {
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public ContainerRequest createContainerRequest(String host, String path,
|
|
|
+ String queryParams,
|
|
|
boolean virtualHostStyle)
|
|
|
throws Exception {
|
|
|
URI baseUri = new URI("http://" + s3HttpAddr);
|
|
|
URI virtualHostStyleUri;
|
|
|
- if (path == null) {
|
|
|
+ if (path == null && queryParams == null) {
|
|
|
virtualHostStyleUri = new URI("http://" + s3HttpAddr);
|
|
|
- } else {
|
|
|
+ } else if (path != null && queryParams == null) {
|
|
|
virtualHostStyleUri = new URI("http://" + s3HttpAddr + path);
|
|
|
+ } else if (path !=null && queryParams != null) {
|
|
|
+ virtualHostStyleUri = new URI("http://" + s3HttpAddr + path +
|
|
|
+ queryParams);
|
|
|
+ } else {
|
|
|
+ virtualHostStyleUri = new URI("http://" + s3HttpAddr + queryParams);
|
|
|
+ }
|
|
|
+ URI pathStyleUri;
|
|
|
+ if (queryParams == null) {
|
|
|
+ pathStyleUri = new URI("http://" + s3HttpAddr + path);
|
|
|
+ } else {
|
|
|
+ pathStyleUri = new URI("http://" + s3HttpAddr + path + queryParams);
|
|
|
}
|
|
|
- URI pathStyleUri = new URI("http://" + s3HttpAddr + path);
|
|
|
String httpMethod = "DELETE";
|
|
|
SecurityContext securityContext = Mockito.mock(SecurityContext.class);
|
|
|
PropertiesDelegate propertiesDelegate = Mockito.mock(PropertiesDelegate
|
|
@@ -89,7 +101,7 @@ public class TestVirtualHostStyleFilter {
|
|
|
virtualHostStyleFilter.setConfiguration(conf);
|
|
|
|
|
|
ContainerRequest containerRequest = createContainerRequest("mybucket" +
|
|
|
- ".localhost:9878", "/myfile", true);
|
|
|
+ ".localhost:9878", "/myfile", null, true);
|
|
|
virtualHostStyleFilter.filter(containerRequest);
|
|
|
URI expected = new URI("http://" + s3HttpAddr +
|
|
|
"/mybucket/myfile");
|
|
@@ -104,7 +116,7 @@ public class TestVirtualHostStyleFilter {
|
|
|
virtualHostStyleFilter.setConfiguration(conf);
|
|
|
|
|
|
ContainerRequest containerRequest = createContainerRequest(s3HttpAddr,
|
|
|
- "/mybucket/myfile", false);
|
|
|
+ "/mybucket/myfile", null, false);
|
|
|
virtualHostStyleFilter.filter(containerRequest);
|
|
|
URI expected = new URI("http://" + s3HttpAddr +
|
|
|
"/mybucket/myfile");
|
|
@@ -120,13 +132,37 @@ public class TestVirtualHostStyleFilter {
|
|
|
virtualHostStyleFilter.setConfiguration(conf);
|
|
|
|
|
|
ContainerRequest containerRequest = createContainerRequest("mybucket" +
|
|
|
- ".localhost:9878", null, true);
|
|
|
+ ".localhost:9878", null, null, true);
|
|
|
virtualHostStyleFilter.filter(containerRequest);
|
|
|
URI expected = new URI("http://" + s3HttpAddr + "/mybucket");
|
|
|
Assert.assertEquals(expected, containerRequest.getRequestUri());
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void testVirtualHostStyleWithQueryParams() throws Exception {
|
|
|
+
|
|
|
+ VirtualHostStyleFilter virtualHostStyleFilter =
|
|
|
+ new VirtualHostStyleFilter();
|
|
|
+ virtualHostStyleFilter.setConfiguration(conf);
|
|
|
+
|
|
|
+ ContainerRequest containerRequest = createContainerRequest("mybucket" +
|
|
|
+ ".localhost:9878", null, "?prefix=bh", true);
|
|
|
+ virtualHostStyleFilter.filter(containerRequest);
|
|
|
+ URI expected = new URI("http://" + s3HttpAddr + "/mybucket?prefix=bh");
|
|
|
+ assertTrue(expected.toString().contains(containerRequest.getRequestUri()
|
|
|
+ .toString()));
|
|
|
+
|
|
|
+ containerRequest = createContainerRequest("mybucket" +
|
|
|
+ ".localhost:9878", null, "?prefix=bh&type=dir", true);
|
|
|
+ virtualHostStyleFilter.filter(containerRequest);
|
|
|
+ expected = new URI("http://" + s3HttpAddr +
|
|
|
+ "/mybucket?prefix=bh&type=dir");
|
|
|
+ assertTrue(expected.toString().contains(containerRequest.getRequestUri()
|
|
|
+ .toString()));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
public void testVirtualHostStyleWithNoMatchingDomain() throws Exception {
|
|
|
|
|
@@ -135,7 +171,7 @@ public class TestVirtualHostStyleFilter {
|
|
|
virtualHostStyleFilter.setConfiguration(conf);
|
|
|
|
|
|
ContainerRequest containerRequest = createContainerRequest("mybucket" +
|
|
|
- ".localhost:9999", null, true);
|
|
|
+ ".localhost:9999", null, null, true);
|
|
|
try {
|
|
|
virtualHostStyleFilter.filter(containerRequest);
|
|
|
} catch (InvalidRequestException ex) {
|
|
@@ -153,7 +189,7 @@ public class TestVirtualHostStyleFilter {
|
|
|
virtualHostStyleFilter.setConfiguration(conf);
|
|
|
|
|
|
ContainerRequest containerRequest = createContainerRequest("mybucket" +
|
|
|
- "localhost:9878", null, true);
|
|
|
+ "localhost:9878", null, null, true);
|
|
|
try {
|
|
|
virtualHostStyleFilter.filter(containerRequest);
|
|
|
fail("testIncorrectVirtualHostStyle failed");
|