Skip to content

Commit 0576b23

Browse files
committed
Add Unit tests for route detection for Servlet Framework
1 parent b842390 commit 0576b23

File tree

16 files changed

+82
-9
lines changed

16 files changed

+82
-9
lines changed

instrumentation-security/servlet-5.0/src/test/java/com/nr/agent/security/instrumentation/servlet5/HttpServletTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ public void testPost() throws Exception {
3232
AgentMetaData metaData = introspector.getSecurityMetaData().getMetaData();
3333
Assert.assertTrue(metaData.isUserLevelServiceMethodEncountered());
3434
Assert.assertNotNull(metaData.getServiceTrace());
35+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
36+
3537
}
3638
@Test
3739
public void testDelete() throws Exception {
@@ -41,6 +43,8 @@ public void testDelete() throws Exception {
4143
AgentMetaData metaData = introspector.getSecurityMetaData().getMetaData();
4244
Assert.assertTrue(metaData.isUserLevelServiceMethodEncountered());
4345
Assert.assertNotNull(metaData.getServiceTrace());
46+
47+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
4448
}
4549
@Test
4650
public void testPUT() throws Exception {
@@ -50,6 +54,8 @@ public void testPUT() throws Exception {
5054
AgentMetaData metaData = introspector.getSecurityMetaData().getMetaData();
5155
Assert.assertTrue(metaData.isUserLevelServiceMethodEncountered());
5256
Assert.assertNotNull(metaData.getServiceTrace());
57+
58+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
5359
}
5460

5561
@Test
@@ -60,6 +66,8 @@ public void testHEAD() throws Exception {
6066
AgentMetaData metaData = introspector.getSecurityMetaData().getMetaData();
6167
Assert.assertTrue(metaData.isUserLevelServiceMethodEncountered());
6268
Assert.assertNotNull(metaData.getServiceTrace());
69+
70+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
6371
}
6472
@Test
6573
public void testGET() throws Exception {
@@ -69,6 +77,8 @@ public void testGET() throws Exception {
6977
AgentMetaData metaData = introspector.getSecurityMetaData().getMetaData();
7078
Assert.assertTrue(metaData.isUserLevelServiceMethodEncountered());
7179
Assert.assertNotNull(metaData.getServiceTrace());
80+
81+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
7282
}
7383

7484
@Trace(dispatcher = true)

instrumentation-security/servlet-5.0/src/test/java/com/nr/agent/security/instrumentation/servlet5/HttpSessionTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ else if(i==1){
5757
i++;
5858
}
5959
}
60+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
6061
}
6162

6263
@Test
@@ -79,6 +80,7 @@ public void testSessionPutValue() throws IOException, URISyntaxException {
7980
Assert.assertEquals("Wrong key detected", "key1", targetOperation.getKey());
8081
Assert.assertEquals("Wrong value detected", "value1", targetOperation.getValue());
8182
}
83+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
8284
}
8385

8486
@Test
@@ -99,6 +101,7 @@ public void testAddCookie() throws IOException, URISyntaxException {
99101
Assert.assertNotNull("No target operation detected", targetOperation);
100102
Assert.assertEquals("Wrong case-type detected", VulnerabilityCaseType.SECURE_COOKIE, targetOperation.getCaseType());
101103
Assert.assertEquals("Wrong key detected", "false", targetOperation.getValue());
104+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
102105
}
103106

104107
@Test
@@ -119,6 +122,7 @@ public void testAddCookie1() throws IOException, URISyntaxException {
119122
Assert.assertNotNull("No target operation detected", targetOperation);
120123
Assert.assertEquals("Wrong case-type detected", VulnerabilityCaseType.SECURE_COOKIE, targetOperation.getCaseType());
121124
Assert.assertEquals("Wrong key detected", "true", targetOperation.getValue());
125+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
122126
}
123127

124128
private void makeRequest( String Method, final String POST_PARAMS, String path) throws URISyntaxException, IOException{

instrumentation-security/servlet-5.0/src/test/java/com/nr/agent/security/instrumentation/servlet5/ServletInputStreamTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public void testRead() throws Exception {
4747
Assert.assertEquals("Wrong Content-type detected", "multipart/form-data", targetOperation.getRequest().getContentType());
4848

4949
Assert.assertEquals("Wrong data detected", expected, targetOperation.getRequest().getBody().toString());
50+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
5051
}
5152

5253

@@ -67,6 +68,7 @@ public void testReadLine() throws Exception {
6768
Assert.assertEquals("Wrong Content-type detected", "multipart/form-data", targetOperation.getRequest().getContentType());
6869

6970
Assert.assertEquals("Wrong data detected", expected, targetOperation.getRequest().getBody().toString());
71+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
7072
}
7173

7274
@Test
@@ -86,6 +88,7 @@ public void testReadLineWithOff() throws Exception {
8688
Assert.assertEquals("Wrong Content-type detected", "multipart/form-data", targetOperation.getRequest().getContentType());
8789

8890
Assert.assertEquals("Wrong data detected", expected, targetOperation.getRequest().getBody().toString());
91+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
8992
}
9093

9194
@Trace(dispatcher = true)

instrumentation-security/servlet-5.0/src/test/java/com/nr/agent/security/instrumentation/servlet5/ServletOutputStreamTest.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public void testWrite() throws URISyntaxException, IOException {
5454
Assert.assertEquals("Wrong response detected", expected, String.valueOf(targetOperation.getResponse().getResponseBody()));
5555
Assert.assertEquals("Wrong Response Content-type detected", "multipart/form-data", targetOperation.getResponse().getResponseContentType());
5656

57+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
5758
}
5859

5960
@Test
@@ -76,6 +77,7 @@ public void testPrintString() throws URISyntaxException, IOException {
7677

7778
Assert.assertEquals("Wrong response detected", expected, String.valueOf(targetOperation.getResponse().getResponseBody()));
7879

80+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
7981
}
8082

8183
@Test
@@ -95,10 +97,11 @@ public void testPrintBoolean() throws URISyntaxException, IOException {
9597
Assert.assertEquals("Wrong port detected", servlet.getEndPoint("outputStream/print").getPort(), targetOperation.getRequest().getServerPort());
9698
Assert.assertEquals("Wrong method name detected", "service", targetOperation.getMethodName());
9799
Assert.assertEquals("Wrong Content-type detected", "application/x-www-form-urlencoded", targetOperation.getRequest().getContentType());
98-
99100

100101
boolean resBody = Boolean.parseBoolean(String.valueOf(targetOperation.getResponse().getResponseBody()));
101102
Assert.assertEquals("Wrong response detected", expected, resBody);
103+
104+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
102105
}
103106

104107
@Test
@@ -118,11 +121,11 @@ public void testPrintChar() throws URISyntaxException, IOException {
118121
Assert.assertEquals("Wrong port detected", servlet.getEndPoint("outputStream/print").getPort(), targetOperation.getRequest().getServerPort());
119122
Assert.assertEquals("Wrong method name detected", "service", targetOperation.getMethodName());
120123
Assert.assertEquals("Wrong Content-type detected", "application/x-www-form-urlencoded", targetOperation.getRequest().getContentType());
121-
122124

123125
char resBody = String.valueOf(targetOperation.getResponse().getResponseBody()).charAt(0);
124126
Assert.assertEquals("Wrong response detected", expected, resBody);
125127

128+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
126129
}
127130

128131
@Test
@@ -146,6 +149,8 @@ public void testPrintInt() throws URISyntaxException, IOException {
146149

147150
int resBody = Integer.parseInt(String.valueOf(targetOperation.getResponse().getResponseBody()));
148151
Assert.assertEquals("Wrong response detected", expected, resBody);
152+
153+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
149154
}
150155

151156
@Test
@@ -169,6 +174,8 @@ public void testPrintLong() throws URISyntaxException, IOException {
169174

170175
long resBody = Long.parseLong(String.valueOf(targetOperation.getResponse().getResponseBody()));
171176
Assert.assertEquals("Wrong response detected", expected, resBody);
177+
178+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
172179
}
173180

174181
@Test
@@ -192,6 +199,8 @@ public void testPrintFloat() throws URISyntaxException, IOException {
192199

193200
float resBody = Float.parseFloat(String.valueOf(targetOperation.getResponse().getResponseBody()));
194201
Assert.assertEquals("Wrong response detected",expected, resBody, 0.0f);
202+
203+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
195204
}
196205

197206
@Test
@@ -215,6 +224,7 @@ public void testPrintDouble() throws URISyntaxException, IOException {
215224

216225
double resBody = Double.parseDouble(String.valueOf(targetOperation.getResponse().getResponseBody()));
217226
Assert.assertEquals("Wrong response detected", expected, resBody, 0.0d);
227+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
218228
}
219229

220230
@Test
@@ -237,6 +247,7 @@ public void testPrintln() throws URISyntaxException, IOException {
237247

238248
Assert.assertEquals("Wrong response detected", expected, String.valueOf(targetOperation.getResponse().getResponseBody()));
239249

250+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
240251
}
241252

242253
@Test
@@ -259,6 +270,7 @@ public void testPrintlnString() throws URISyntaxException, IOException {
259270

260271
Assert.assertEquals("Wrong response detected", expected, String.valueOf(targetOperation.getResponse().getResponseBody()));
261272

273+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
262274
}
263275

264276
@Test
@@ -281,6 +293,7 @@ public void testPrintlnBoolean() throws URISyntaxException, IOException {
281293

282294
Assert.assertEquals("Wrong response detected", expected, String.valueOf(targetOperation.getResponse().getResponseBody()));
283295

296+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
284297
}
285298

286299
@Test
@@ -303,6 +316,7 @@ public void testPrintlnChar() throws URISyntaxException, IOException {
303316

304317
Assert.assertEquals("Wrong response detected", expected, String.valueOf(targetOperation.getResponse().getResponseBody()));
305318

319+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
306320
}
307321

308322
@Test
@@ -325,6 +339,7 @@ public void testPrintlnInt() throws URISyntaxException, IOException {
325339

326340
Assert.assertEquals("Wrong response detected", expected, String.valueOf(targetOperation.getResponse().getResponseBody()));
327341

342+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
328343
}
329344

330345
@Test
@@ -346,6 +361,7 @@ public void testPrintlnLong() throws URISyntaxException, IOException {
346361
Assert.assertEquals("Wrong Content-type detected", "application/x-www-form-urlencoded", targetOperation.getRequest().getContentType());
347362

348363
Assert.assertEquals("Wrong response detected", expected, String.valueOf(targetOperation.getResponse().getResponseBody()));
364+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
349365
}
350366

351367
@Test
@@ -367,6 +383,7 @@ public void testPrintlnFloat() throws URISyntaxException, IOException {
367383
Assert.assertEquals("Wrong Content-type detected", "application/x-www-form-urlencoded", targetOperation.getRequest().getContentType());
368384

369385
Assert.assertEquals("Wrong response detected", expected, String.valueOf(targetOperation.getResponse().getResponseBody()));
386+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
370387
}
371388

372389
@Test
@@ -388,6 +405,7 @@ public void testPrintlnDouble() throws URISyntaxException, IOException {
388405
Assert.assertEquals("Wrong Content-type detected", "application/x-www-form-urlencoded", targetOperation.getRequest().getContentType());
389406

390407
Assert.assertEquals("Wrong response detected", expected, String.valueOf(targetOperation.getResponse().getResponseBody()));
408+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
391409
}
392410
@Trace(dispatcher = true)
393411
private String write() throws URISyntaxException, IOException {

instrumentation-security/servlet-5.0/src/test/java/com/nr/agent/security/instrumentation/servlet5/ServletRequestTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public void testGetInputStream() throws Exception {
5959

6060
Assert.assertEquals("Wrong hashcode detected", Collections.singleton(expectedHash), introspector.getRequestInStreamHash());
6161

62+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
6263
}
6364

6465
@Test
@@ -80,6 +81,7 @@ public void testGetReader() throws Exception {
8081

8182
Assert.assertEquals("Wrong hashcode detected", Collections.singleton(expectedHash), introspector.getRequestReaderHash());
8283

84+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
8385
}
8486

8587
@Test
@@ -100,8 +102,8 @@ public void testGetParameter() throws Exception {
100102
Assert.assertEquals("Wrong Param detected", expectedParam, new ObjectMapper().writeValueAsString(targetOperation.getRequest().getParameterMap()));
101103
Assert.assertEquals("Wrong method name detected", "service", targetOperation.getMethodName());
102104
Assert.assertEquals("Wrong Content-type detected", "application/x-www-form-urlencoded", targetOperation.getRequest().getContentType());
103-
104105

106+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
105107
}
106108

107109
@Test
@@ -122,8 +124,8 @@ public void testGetParameterValues() throws Exception {
122124
Assert.assertEquals("Wrong Param detected", expectedParam, new ObjectMapper().writeValueAsString(targetOperation.getRequest().getParameterMap()));
123125
Assert.assertEquals("Wrong method name detected", "service", targetOperation.getMethodName());
124126
Assert.assertEquals("Wrong Content-type detected", "application/x-www-form-urlencoded", targetOperation.getRequest().getContentType());
125-
126127

128+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
127129
}
128130

129131
@Test
@@ -144,8 +146,8 @@ public void testGetParameterMap() throws Exception {
144146
Assert.assertEquals("Wrong Param detected", expectedParam, new ObjectMapper().writeValueAsString(targetOperation.getRequest().getParameterMap()));
145147
Assert.assertEquals("Wrong method name detected", "service", targetOperation.getMethodName());
146148
Assert.assertEquals("Wrong Content-type detected", "application/x-www-form-urlencoded", targetOperation.getRequest().getContentType());
147-
148149

150+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
149151
}
150152

151153
@Trace(dispatcher = true)

instrumentation-security/servlet-5.0/src/test/java/com/nr/agent/security/instrumentation/servlet5/ServletResponseTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public void testGetOutputStream() throws Exception {
5151

5252
Assert.assertEquals("Wrong hashcode detected", Collections.singleton(expectedHash), introspector.getResponseOutStreamHash());
5353

54+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
5455
}
5556

5657
@Test
@@ -71,6 +72,7 @@ public void testGetWriter() throws Exception {
7172
Assert.assertEquals("Wrong Content-type detected", "application/x-www-form-urlencoded", targetOperation.getRequest().getContentType());
7273

7374
Assert.assertEquals("Wrong hashcode detected", Collections.singleton(expectedHash), introspector.getResponseWriterHash());
75+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
7476
}
7577

7678
@Trace(dispatcher = true)

instrumentation-security/servlet-5.0/src/test/java/com/nr/agent/security/instrumentation/servlet5/ServletTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public void testService() throws Exception {
4646
Assert.assertEquals("Wrong port detected", server.getEndPoint("").getPort(), targetOperation.getRequest().getServerPort());
4747
Assert.assertEquals("Wrong method name detected", "service", targetOperation.getMethodName());
4848
Assert.assertEquals("Wrong Content-type detected", "text/plain", targetOperation.getRequest().getContentType());
49+
Assert.assertEquals("Incorrect route detected", "/test", introspector.getSecurityMetaData().getRequest().getRoute());
4950
}
5051

5152
@Trace(dispatcher = true)

instrumentation-security/servlet-5.0/src/test/java/com/nr/agent/security/instrumentation/servlet5/WebServletTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public void testAnnotation() throws Exception {
3030
AgentMetaData metaData = introspector.getSecurityMetaData().getMetaData();
3131
Assert.assertTrue(metaData.isUserLevelServiceMethodEncountered());
3232
Assert.assertNotNull(metaData.getServiceTrace());
33+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
3334
}
3435

3536
@Trace(dispatcher = true)

instrumentation-security/servlet-6.0/src/test/java/com/nr/agent/security/instrumentation/servlet6/HttpServletTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public void testPost() throws Exception {
3232
AgentMetaData metaData = introspector.getSecurityMetaData().getMetaData();
3333
Assert.assertTrue(metaData.isUserLevelServiceMethodEncountered());
3434
Assert.assertNotNull(metaData.getServiceTrace());
35+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
3536
}
3637
@Test
3738
public void testDelete() throws Exception {
@@ -41,6 +42,7 @@ public void testDelete() throws Exception {
4142
AgentMetaData metaData = introspector.getSecurityMetaData().getMetaData();
4243
Assert.assertTrue(metaData.isUserLevelServiceMethodEncountered());
4344
Assert.assertNotNull(metaData.getServiceTrace());
45+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
4446
}
4547
@Test
4648
public void testPUT() throws Exception {
@@ -50,6 +52,7 @@ public void testPUT() throws Exception {
5052
AgentMetaData metaData = introspector.getSecurityMetaData().getMetaData();
5153
Assert.assertTrue(metaData.isUserLevelServiceMethodEncountered());
5254
Assert.assertNotNull(metaData.getServiceTrace());
55+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
5356
}
5457

5558
@Test
@@ -60,6 +63,7 @@ public void testHEAD() throws Exception {
6063
AgentMetaData metaData = introspector.getSecurityMetaData().getMetaData();
6164
Assert.assertTrue(metaData.isUserLevelServiceMethodEncountered());
6265
Assert.assertNotNull(metaData.getServiceTrace());
66+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
6367
}
6468
@Test
6569
public void testGET() throws Exception {
@@ -69,6 +73,7 @@ public void testGET() throws Exception {
6973
AgentMetaData metaData = introspector.getSecurityMetaData().getMetaData();
7074
Assert.assertTrue(metaData.isUserLevelServiceMethodEncountered());
7175
Assert.assertNotNull(metaData.getServiceTrace());
76+
Assert.assertEquals("Incorrect route detected", "/*", introspector.getSecurityMetaData().getRequest().getRoute());
7277
}
7378

7479
@Trace(dispatcher = true)

0 commit comments

Comments
 (0)