Skip to content

Commit 0cb4f8e

Browse files
committed
add test for pathTraversal
1 parent 765a4ef commit 0cb4f8e

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

commercetools/commercetools-sdk-java-api/src/integrationTest/java/commercetools/cart/CartQueryTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import commercetools.discount_code.DiscountCodeFixtures;
1616
import commercetools.utils.CommercetoolsTestUtils;
1717

18+
import io.vrap.rmf.base.client.error.NotFoundException;
19+
1820
import org.assertj.core.api.Assertions;
1921
import org.junit.jupiter.api.Test;
2022

@@ -151,6 +153,16 @@ public void expandDiscountCodeReference() {
151153
});
152154
}
153155

156+
@Test
157+
public void pathTraversal() {
158+
CartsFixtures.withCart(cart -> {
159+
NotFoundException e = org.junit.jupiter.api.Assertions.assertThrows(NotFoundException.class, () -> {
160+
CommercetoolsTestUtils.getProjectApiRoot().carts().withId("../categories").get().executeBlocking();
161+
});
162+
Assertions.assertThat(e.getMessage()).contains("..%2Fcategories");
163+
});
164+
}
165+
154166
private void withUpdateableCartAndDiscount(final BiFunction<Cart, DiscountCode, Cart> function) {
155167
DiscountCodeFixtures
156168
.withUpdateableDiscountCode(discountCodeDraftBuilder -> discountCodeDraftBuilder.isActive(true)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
package com.commercetools;
3+
4+
import com.commercetools.api.client.ProjectApiRoot;
5+
import com.commercetools.api.defaultconfig.ApiRootBuilder;
6+
7+
import io.vrap.rmf.base.client.ApiHttpRequest;
8+
9+
import org.assertj.core.api.Assertions;
10+
import org.junit.jupiter.api.Test;
11+
12+
public class EncodePathParamTest {
13+
@Test
14+
public void testPathTraversal() {
15+
final ProjectApiRoot project = ApiRootBuilder.of().withApiBaseUrl("").build("test");
16+
17+
final ApiHttpRequest httpRequest = project.carts().withId("../categories").get().createHttpRequest();
18+
Assertions.assertThat(httpRequest.getUri().toString()).isEqualTo("test/carts/..%2Fcategories");
19+
}
20+
21+
}

0 commit comments

Comments
 (0)