Skip to content

Commit d79c938

Browse files
author
Inbal Tako
committed
Add request utils tests
1 parent 9c7fbb1 commit d79c938

File tree

3 files changed

+77
-3
lines changed

3 files changed

+77
-3
lines changed

README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ public void track(HttpServletRequest request, HttpServletResponse response) {
165165
System.err.printf("Could not get SecureNative instance; %s%n", e);
166166
}
167167

168-
SecureNativeContext context = SecureNativeContextBuilder.fromHttpServletRequest(request).build();
168+
SecureNativeContext context = securenative.fromHttpServletRequest(request).build();
169169

170170
EventOptions eventOptions = null;
171171
try {
@@ -199,7 +199,14 @@ public void track(HttpServletRequest request, HttpServletResponse response) {
199199
```java
200200
@RequestMapping("/verify")
201201
public void verify(HttpServletRequest request, HttpServletResponse response) {
202-
SecureNativeContext context = SecureNativeContextBuilder.fromHttpServletRequest(request).build();
202+
SecureNative securenative = null;
203+
try {
204+
securenative = SecureNative.getInstance();
205+
} catch (SecureNativeSDKIllegalStateException e) {
206+
System.err.printf("Could not get SecureNative instance; %s%n", e);
207+
}
208+
209+
SecureNativeContext context = securenative.fromHttpServletRequest(request).build();
203210

204211
EventOptions eventOptions = null;
205212
try {

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<groupId>com.securenative.java</groupId>
77
<artifactId>securenative-java</artifactId>
88
<packaging>jar</packaging>
9-
<version>0.5.5</version>
9+
<version>0.5.6</version>
1010
<url>https://github.com/securenative/securenative-java</url>
1111

1212
<name>${project.groupId}:${project.artifactId}:${project.version}</name>
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package com.securenative.utils;
2+
3+
import com.securenative.config.SecureNativeConfigurationBuilder;
4+
import com.securenative.config.SecureNativeOptions;
5+
import org.junit.jupiter.api.DisplayName;
6+
import org.junit.jupiter.api.Test;
7+
import org.springframework.mock.web.MockHttpServletRequest;
8+
9+
import java.util.ArrayList;
10+
import java.util.Collections;
11+
import java.util.Map;
12+
13+
import static org.assertj.core.api.Assertions.assertThat;
14+
15+
public class RequestUtilsTest {
16+
17+
@Test
18+
@DisplayName("Extract ip using proxy headers ipv4")
19+
public void ExtractRequestWithProxyHeadersIPV4()
20+
{
21+
SecureNativeOptions options = SecureNativeConfigurationBuilder.defaultConfigBuilder()
22+
.withProxyHeaders(new ArrayList<>(Collections.singleton("CF-Connecting-IP"))).build();
23+
24+
MockHttpServletRequest request = new MockHttpServletRequest();
25+
request.setServerName("www.securenative.com");
26+
request.addHeader("CF-Connecting-IP", "203.0.113.1");
27+
28+
Map<String, String> headers = RequestUtils.getHeadersFromRequest(request);
29+
String clientIp = RequestUtils.getClientIpFromRequest(request, headers, options);
30+
31+
assertThat(clientIp.equals("203.0.113.1"));
32+
}
33+
34+
@Test
35+
@DisplayName("Extract ip using proxy headers ipv6")
36+
public void ExtractRequestWithProxyHeadersIPV6()
37+
{
38+
SecureNativeOptions options = SecureNativeConfigurationBuilder.defaultConfigBuilder()
39+
.withProxyHeaders(new ArrayList<>(Collections.singleton("CF-Connecting-IP"))).build();
40+
41+
MockHttpServletRequest request = new MockHttpServletRequest();
42+
request.setServerName("www.securenative.com");
43+
request.addHeader("CF-Connecting-IP", "f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d");
44+
45+
Map<String, String> headers = RequestUtils.getHeadersFromRequest(request);
46+
String clientIp = RequestUtils.getClientIpFromRequest(request, headers, options);
47+
48+
assertThat(clientIp.equals("f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d"));
49+
}
50+
51+
@Test
52+
@DisplayName("Extract ip using proxy headers with multiple ipv4")
53+
public void ExtractRequestWithProxyHeadersMultipleIPV4()
54+
{
55+
SecureNativeOptions options = SecureNativeConfigurationBuilder.defaultConfigBuilder()
56+
.withProxyHeaders(new ArrayList<>(Collections.singleton("CF-Connecting-IP"))).build();
57+
58+
MockHttpServletRequest request = new MockHttpServletRequest();
59+
request.setServerName("www.securenative.com");
60+
request.addHeader("CF-Connecting-IP", "141.246.115.116, 203.0.113.1, 12.34.56.3");
61+
62+
Map<String, String> headers = RequestUtils.getHeadersFromRequest(request);
63+
String clientIp = RequestUtils.getClientIpFromRequest(request, headers, options);
64+
65+
assertThat(clientIp.equals("141.246.115.116"));
66+
}
67+
}

0 commit comments

Comments
 (0)