15
15
*/
16
16
package com .vonage .client .auth ;
17
17
18
+ import static com .vonage .client .auth .RequestSigning .*;
18
19
import com .vonage .client .auth .hashutils .HashUtil ;
19
20
import org .apache .http .NameValuePair ;
20
21
import org .apache .http .message .BasicNameValuePair ;
@@ -39,13 +40,13 @@ public void testConstructSignatureForRequestParameters() {
39
40
params .add (new BasicNameValuePair ("a" , "alphabet" ));
40
41
params .add (new BasicNameValuePair ("b" , "bananas" ));
41
42
42
- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 );
43
+ constructSignatureForRequestParameters (params , "abcde" , 2100 );
43
44
Map <String , String > paramMap = constructParamMap (params );
44
45
// md5 -s "&a=alphabet&b=bananas×tamp=2100abcde"
45
46
String expected = "7d43241108912b32cc315b48ce681acf" ;
46
47
47
48
assertEquals (expected , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
48
- RequestSigning . constructSignatureForRequestParameters (params , "abcde" );
49
+ constructSignatureForRequestParameters (params , "abcde" );
49
50
paramMap = constructParamMap (params );
50
51
assertNotEquals (expected , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
51
52
}
@@ -56,7 +57,7 @@ public void testConstructSignatureForRequestParametersWithSha1Hash() {
56
57
params .add (new BasicNameValuePair ("a" , "alphabet" ));
57
58
params .add (new BasicNameValuePair ("b" , "bananas" ));
58
59
59
- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_SHA1 );
60
+ constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_SHA1 );
60
61
Map <String , String > paramMap = constructParamMap (params );
61
62
// md5 -s "&a=alphabet&b=bananas×tamp=2100"
62
63
assertEquals ("b7f749de27b4adcf736cc95c9a7e059a16c85127" , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
@@ -68,7 +69,7 @@ public void testConstructSignatureForRequestParametersWithHmacMd5Hash() {
68
69
params .add (new BasicNameValuePair ("a" , "alphabet" ));
69
70
params .add (new BasicNameValuePair ("b" , "bananas" ));
70
71
71
- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_MD5 );
72
+ constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_MD5 );
72
73
Map <String , String > paramMap = constructParamMap (params );
73
74
// md5 -s "&a=alphabet&b=bananas×tamp=2100"
74
75
assertEquals ("e0afe267aefd6dd18a848c1681517a19" , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
@@ -80,7 +81,7 @@ public void testConstructSignatureForRequestParametersWithHmacSha256Hash() {
80
81
params .add (new BasicNameValuePair ("a" , "alphabet" ));
81
82
params .add (new BasicNameValuePair ("b" , "bananas" ));
82
83
83
- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_SHA256 );
84
+ constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_SHA256 );
84
85
Map <String , String > paramMap = constructParamMap (params );
85
86
// md5 -s "&a=alphabet&b=bananas×tamp=2100"
86
87
assertEquals ("8d1b0428276b6a070578225914c3502cc0687a454dfbbbb370c76a14234cb546" , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
@@ -92,7 +93,7 @@ public void testConstructSignatureForRequestParametersWithHmacSha512Hash() {
92
93
params .add (new BasicNameValuePair ("a" , "alphabet" ));
93
94
params .add (new BasicNameValuePair ("b" , "bananas" ));
94
95
95
- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_SHA512 );
96
+ constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_SHA512 );
96
97
Map <String , String > paramMap = constructParamMap (params );
97
98
// md5 -s "&a=alphabet&b=bananas×tamp=2100"
98
99
assertEquals ("1c834a1f6a377d4473971387b065cb38e2ad6c4869ba77b7b53e207a344e87ba04b456dfc697b371a2d1ce476d01dafd4394aa97525eff23badad39d2389a710" , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
@@ -106,7 +107,7 @@ public void testConstructSignatureForRequestParametersSkipsSignature() {
106
107
params .add (new BasicNameValuePair ("sig" , "7d43241108912b32cc315b48ce681acf" ));
107
108
108
109
109
- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 );
110
+ constructSignatureForRequestParameters (params , "abcde" , 2100 );
110
111
Map <String , String > paramMap = constructParamMap (params );
111
112
// md5 -s "&a=alphabet&b=bananas×tamp=2100abcde"
112
113
assertEquals ("7d43241108912b32cc315b48ce681acf" , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
@@ -118,7 +119,7 @@ public void testConstructSignatureForRequestParametersSkipsNullValues() {
118
119
params .add (new BasicNameValuePair ("a" , "alphabet" ));
119
120
params .add (new BasicNameValuePair ("b" , null ));
120
121
121
- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 );
122
+ constructSignatureForRequestParameters (params , "abcde" , 2100 );
122
123
Map <String , String > paramMap = constructParamMap (params );
123
124
// md5 -s "&a=alphabet×tamp=2100abcde"
124
125
assertEquals ("a3368bf718ba104dcb392d8877e8eb2b" , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
@@ -134,18 +135,15 @@ private static Map<String, String> constructParamMap(List<NameValuePair> params)
134
135
135
136
@ Test
136
137
public void testVerifyRequestSignature () {
137
- assertTrue (RequestSigning .verifyRequestSignature (
138
- RequestSigning .APPLICATION_JSON , null , constructDummyParams (),
139
- "abcde" , 2100000
140
- ));
138
+ assertTrue (verifySignature (constructDummyParams ()));
141
139
}
142
140
143
141
@ Test
144
142
public void testVerifyRequestSignatureWithSha1Hash () {
145
143
Map <String , String []> params = constructDummyParams ();
146
144
params .put ("sig" , new String []{"b7f749de27b4adcf736cc95c9a7e059a16c85127" });
147
145
148
- assertTrue (RequestSigning . verifyRequestSignature (
146
+ assertTrue (verifyRequestSignature (
149
147
RequestSigning .APPLICATION_JSON , null , params ,
150
148
"abcde" , 2100000 , HashUtil .HashType .HMAC_SHA1
151
149
));
@@ -154,7 +152,7 @@ public void testVerifyRequestSignatureWithSha1Hash() {
154
152
@ Test
155
153
public void testVerifySignatureRequestJson () throws Exception {
156
154
HttpServletRequest request = constructDummyRequestJson ();
157
- assertTrue (RequestSigning . verifyRequestSignature (
155
+ assertTrue (verifyRequestSignature (
158
156
RequestSigning .APPLICATION_JSON , request .getInputStream (), constructDummyParams (),
159
157
"abcde" , 2100000 , HashUtil .HashType .HMAC_SHA1
160
158
));
@@ -165,7 +163,7 @@ public void testVerifyRequestSignatureWithHmacSha256Hash() {
165
163
Map <String , String []> params = constructDummyParams ();
166
164
params .put ("sig" , new String []{"8d1b0428276b6a070578225914c3502cc0687a454dfbbbb370c76a14234cb546" });
167
165
168
- assertTrue (RequestSigning . verifyRequestSignature (
166
+ assertTrue (verifyRequestSignature (
169
167
RequestSigning .APPLICATION_JSON , null , params ,
170
168
"abcde" , 2100000 , HashUtil .HashType .HMAC_SHA256
171
169
));
@@ -175,7 +173,7 @@ public void testVerifyRequestSignatureWithHmacSha256Hash() {
175
173
public void testVerifyRequestSignatureWithHmacMd5Hash () throws Exception {
176
174
Map <String , String []> params = constructDummyParams ();
177
175
params .put ("sig" , new String []{"e0afe267aefd6dd18a848c1681517a19" });
178
- assertTrue (RequestSigning . verifyRequestSignature (
176
+ assertTrue (verifyRequestSignature (
179
177
RequestSigning .APPLICATION_JSON , null , params ,
180
178
"abcde" , 2100000 , HashUtil .HashType .HMAC_MD5
181
179
));
@@ -186,53 +184,44 @@ public void testVerifyRequestSignatureWithHmacSha512Hash() {
186
184
Map <String , String []> params = constructDummyParams ();
187
185
params .put ("sig" , new String []{"1c834a1f6a377d4473971387b065cb38e2ad6c4869ba77b7b53e207a344e87ba04b456dfc697b371a2d1ce476d01dafd4394aa97525eff23badad39d2389a710" });
188
186
189
- assertTrue (RequestSigning . verifyRequestSignature (
187
+ assertTrue (verifyRequestSignature (
190
188
RequestSigning .APPLICATION_JSON , null , params ,
191
189
"abcde" , 2100000 , HashUtil .HashType .HMAC_SHA512
192
190
));
193
191
}
194
192
195
193
@ Test
196
194
public void testVerifyRequestSignatureNoSig () {
197
- assertFalse (RequestSigning .verifyRequestSignature (
198
- RequestSigning .APPLICATION_JSON , null , constructDummyParamsNoSignature (),
199
- "abcde" , 2100000
200
- ));
195
+ assertFalse (verifySignature (constructDummyParamsNoSignature ()));
201
196
}
202
197
203
198
@ Test
204
199
public void testVerifyRequestSignatureBadTimestamp () {
205
- assertFalse (RequestSigning .verifyRequestSignature (
206
- RequestSigning .APPLICATION_JSON , null , constructDummyParamsInvalidTimestamp (),
207
- "abcde" , 2100000
208
- ));
200
+ assertFalse (verifySignature (constructDummyParamsInvalidTimestamp ()));
209
201
}
210
202
211
203
@ Test
212
204
public void testVerifyRequestSignatureMissingTimestamp () {
213
- assertFalse (RequestSigning .verifyRequestSignature (
214
- RequestSigning .APPLICATION_JSON , null , constructDummyParamsNoTimestamp (),
215
- "abcde" , 2100000
216
- ));
205
+ assertFalse (verifySignature (constructDummyParamsNoTimestamp ()));
217
206
}
218
207
219
208
@ Test
220
209
public void testVerifyRequestSignatureHandlesNullParams () {
221
210
Map <String , String []> params = constructDummyParams ();
222
211
params .put ("b" , new String []{ null });
223
212
params .put ("sig" , new String []{"a3368bf718ba104dcb392d8877e8eb2b" });
213
+ assertTrue (verifySignature (params ));
214
+ }
224
215
225
- assertTrue (RequestSigning .verifyRequestSignature (
226
- RequestSigning .APPLICATION_JSON , null , params ,
227
- "abcde" , 2100000
228
- ));
216
+ @ Test
217
+ public void testVerifyRequestSignatureCurrentTimeMillis () {
218
+ assertFalse (verifyRequestSignature (null , APPLICATION_JSON , constructDummyParams (), "abcde" ));
229
219
}
230
220
231
221
private HttpServletRequest constructDummyRequest () {
232
222
return constructDummyRequest (null );
233
223
}
234
224
235
-
236
225
private HttpServletRequest constructDummyRequestJson () throws Exception {
237
226
HttpServletRequest request = mock (HttpServletRequest .class );
238
227
String dummyJson = "{\" a\" :\" alphabet\" ,\" b\" :\" bananas\" ,\" timestamp\" :\" 2100\" ,\" sig\" :\" b7f749de27b4adcf736cc95c9a7e059a16c85127\" }" ;
@@ -325,4 +314,8 @@ private HttpServletRequest constructDummyRequest(final Map<String, String[]> nul
325
314
326
315
return request ;
327
316
}
317
+
318
+ private static boolean verifySignature (Map <String , String []> params ) {
319
+ return verifyRequestSignature (APPLICATION_JSON , null , params , "abcde" , 2100000 );
320
+ }
328
321
}
0 commit comments