|
5 | 5 | import com.perimeterx.api.providers.HostnameProvider; |
6 | 6 | import com.perimeterx.api.providers.IPProvider; |
7 | 7 | import com.perimeterx.api.providers.RemoteAddressIPProvider; |
| 8 | +import com.perimeterx.http.RequestWrapper; |
8 | 9 | import com.perimeterx.models.configuration.PXConfiguration; |
9 | 10 | import com.perimeterx.models.risk.CustomParameters; |
10 | 11 | import org.mockito.Mockito; |
|
14 | 15 | import org.testng.annotations.Test; |
15 | 16 |
|
16 | 17 | import javax.servlet.http.HttpServletRequest; |
| 18 | +import java.util.Collections; |
17 | 19 |
|
18 | 20 | /** |
19 | 21 | * Test {@link PXContext} |
@@ -53,4 +55,41 @@ public void customParamsTest() { |
53 | 55 |
|
54 | 56 | Mockito.verify(spyTestCustomParamProvider).buildCustomParameters(pxConfig, context); |
55 | 57 | } |
| 58 | + |
| 59 | + @Test |
| 60 | + public void allRequestHeadersShouldBeInPXContext() { |
| 61 | + CustomParameters customParameters = new CustomParameters(); |
| 62 | + customParameters.setCustomParam1("number1"); |
| 63 | + TestCustomParamProvider spyTestCustomParamProvider = Mockito.spy(new TestCustomParamProvider(customParameters)); |
| 64 | + PXConfiguration pxConfig = PXConfiguration.builder() |
| 65 | + .appId("APP_ID") |
| 66 | + .authToken("AUTH_123") |
| 67 | + .cookieKey("COOKIE_123") |
| 68 | + .customParametersProvider(spyTestCustomParamProvider) |
| 69 | + .build(); |
| 70 | + ((MockHttpServletRequest) request).addHeader("TEST-BYPASS", "0"); |
| 71 | + PXContext context = new PXContext(request, this.ipProvider, this.hostnameProvider, pxConfig); |
| 72 | + Assert.assertEquals(context.getHeaders().size(), Collections.list(request.getHeaderNames()).size()); |
| 73 | + } |
| 74 | + |
| 75 | + @Test |
| 76 | + public void allRequestWrapperHeadersShouldBeInPXContext() { |
| 77 | + CustomParameters customParameters = new CustomParameters(); |
| 78 | + customParameters.setCustomParam1("number1"); |
| 79 | + TestCustomParamProvider spyTestCustomParamProvider = Mockito.spy(new TestCustomParamProvider(customParameters)); |
| 80 | + PXConfiguration pxConfig = PXConfiguration.builder() |
| 81 | + .appId("APP_ID") |
| 82 | + .authToken("AUTH_123") |
| 83 | + .cookieKey("COOKIE_123") |
| 84 | + .customParametersProvider(spyTestCustomParamProvider) |
| 85 | + .build(); |
| 86 | + ((MockHttpServletRequest) request).addHeader("TEST-BYPASS", "0"); |
| 87 | + RequestWrapper requestWrapper = new RequestWrapper(request); |
| 88 | + requestWrapper.addHeader("client-ip", "127.0.0.1"); |
| 89 | + requestWrapper.addHeader("accept", "application/json"); |
| 90 | + requestWrapper.addHeader("content-type", "application/json"); |
| 91 | + |
| 92 | + PXContext context = new PXContext(requestWrapper, this.ipProvider, this.hostnameProvider, pxConfig); |
| 93 | + Assert.assertEquals(context.getHeaders().size(), Collections.list(request.getHeaderNames()).size() + 3); |
| 94 | + } |
56 | 95 | } |
0 commit comments