1515 */
1616package com .vonage .client .auth ;
1717
18+ import static com .vonage .client .auth .RequestSigning .*;
1819import com .vonage .client .auth .hashutils .HashUtil ;
1920import org .apache .http .NameValuePair ;
2021import org .apache .http .message .BasicNameValuePair ;
@@ -39,13 +40,13 @@ public void testConstructSignatureForRequestParameters() {
3940 params .add (new BasicNameValuePair ("a" , "alphabet" ));
4041 params .add (new BasicNameValuePair ("b" , "bananas" ));
4142
42- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 );
43+ constructSignatureForRequestParameters (params , "abcde" , 2100 );
4344 Map <String , String > paramMap = constructParamMap (params );
4445 // md5 -s "&a=alphabet&b=bananas×tamp=2100abcde"
4546 String expected = "7d43241108912b32cc315b48ce681acf" ;
4647
4748 assertEquals (expected , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
48- RequestSigning . constructSignatureForRequestParameters (params , "abcde" );
49+ constructSignatureForRequestParameters (params , "abcde" );
4950 paramMap = constructParamMap (params );
5051 assertNotEquals (expected , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
5152 }
@@ -56,7 +57,7 @@ public void testConstructSignatureForRequestParametersWithSha1Hash() {
5657 params .add (new BasicNameValuePair ("a" , "alphabet" ));
5758 params .add (new BasicNameValuePair ("b" , "bananas" ));
5859
59- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_SHA1 );
60+ constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_SHA1 );
6061 Map <String , String > paramMap = constructParamMap (params );
6162 // md5 -s "&a=alphabet&b=bananas×tamp=2100"
6263 assertEquals ("b7f749de27b4adcf736cc95c9a7e059a16c85127" , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
@@ -68,7 +69,7 @@ public void testConstructSignatureForRequestParametersWithHmacMd5Hash() {
6869 params .add (new BasicNameValuePair ("a" , "alphabet" ));
6970 params .add (new BasicNameValuePair ("b" , "bananas" ));
7071
71- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_MD5 );
72+ constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_MD5 );
7273 Map <String , String > paramMap = constructParamMap (params );
7374 // md5 -s "&a=alphabet&b=bananas×tamp=2100"
7475 assertEquals ("e0afe267aefd6dd18a848c1681517a19" , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
@@ -80,7 +81,7 @@ public void testConstructSignatureForRequestParametersWithHmacSha256Hash() {
8081 params .add (new BasicNameValuePair ("a" , "alphabet" ));
8182 params .add (new BasicNameValuePair ("b" , "bananas" ));
8283
83- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_SHA256 );
84+ constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_SHA256 );
8485 Map <String , String > paramMap = constructParamMap (params );
8586 // md5 -s "&a=alphabet&b=bananas×tamp=2100"
8687 assertEquals ("8d1b0428276b6a070578225914c3502cc0687a454dfbbbb370c76a14234cb546" , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
@@ -92,7 +93,7 @@ public void testConstructSignatureForRequestParametersWithHmacSha512Hash() {
9293 params .add (new BasicNameValuePair ("a" , "alphabet" ));
9394 params .add (new BasicNameValuePair ("b" , "bananas" ));
9495
95- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_SHA512 );
96+ constructSignatureForRequestParameters (params , "abcde" , 2100 , HashUtil .HashType .HMAC_SHA512 );
9697 Map <String , String > paramMap = constructParamMap (params );
9798 // md5 -s "&a=alphabet&b=bananas×tamp=2100"
9899 assertEquals ("1c834a1f6a377d4473971387b065cb38e2ad6c4869ba77b7b53e207a344e87ba04b456dfc697b371a2d1ce476d01dafd4394aa97525eff23badad39d2389a710" , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
@@ -106,7 +107,7 @@ public void testConstructSignatureForRequestParametersSkipsSignature() {
106107 params .add (new BasicNameValuePair ("sig" , "7d43241108912b32cc315b48ce681acf" ));
107108
108109
109- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 );
110+ constructSignatureForRequestParameters (params , "abcde" , 2100 );
110111 Map <String , String > paramMap = constructParamMap (params );
111112 // md5 -s "&a=alphabet&b=bananas×tamp=2100abcde"
112113 assertEquals ("7d43241108912b32cc315b48ce681acf" , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
@@ -118,7 +119,7 @@ public void testConstructSignatureForRequestParametersSkipsNullValues() {
118119 params .add (new BasicNameValuePair ("a" , "alphabet" ));
119120 params .add (new BasicNameValuePair ("b" , null ));
120121
121- RequestSigning . constructSignatureForRequestParameters (params , "abcde" , 2100 );
122+ constructSignatureForRequestParameters (params , "abcde" , 2100 );
122123 Map <String , String > paramMap = constructParamMap (params );
123124 // md5 -s "&a=alphabet×tamp=2100abcde"
124125 assertEquals ("a3368bf718ba104dcb392d8877e8eb2b" , paramMap .get (RequestSigning .PARAM_SIGNATURE ));
@@ -134,18 +135,15 @@ private static Map<String, String> constructParamMap(List<NameValuePair> params)
134135
135136 @ Test
136137 public void testVerifyRequestSignature () {
137- assertTrue (RequestSigning .verifyRequestSignature (
138- RequestSigning .APPLICATION_JSON , null , constructDummyParams (),
139- "abcde" , 2100000
140- ));
138+ assertTrue (verifySignature (constructDummyParams ()));
141139 }
142140
143141 @ Test
144142 public void testVerifyRequestSignatureWithSha1Hash () {
145143 Map <String , String []> params = constructDummyParams ();
146144 params .put ("sig" , new String []{"b7f749de27b4adcf736cc95c9a7e059a16c85127" });
147145
148- assertTrue (RequestSigning . verifyRequestSignature (
146+ assertTrue (verifyRequestSignature (
149147 RequestSigning .APPLICATION_JSON , null , params ,
150148 "abcde" , 2100000 , HashUtil .HashType .HMAC_SHA1
151149 ));
@@ -154,7 +152,7 @@ public void testVerifyRequestSignatureWithSha1Hash() {
154152 @ Test
155153 public void testVerifySignatureRequestJson () throws Exception {
156154 HttpServletRequest request = constructDummyRequestJson ();
157- assertTrue (RequestSigning . verifyRequestSignature (
155+ assertTrue (verifyRequestSignature (
158156 RequestSigning .APPLICATION_JSON , request .getInputStream (), constructDummyParams (),
159157 "abcde" , 2100000 , HashUtil .HashType .HMAC_SHA1
160158 ));
@@ -165,7 +163,7 @@ public void testVerifyRequestSignatureWithHmacSha256Hash() {
165163 Map <String , String []> params = constructDummyParams ();
166164 params .put ("sig" , new String []{"8d1b0428276b6a070578225914c3502cc0687a454dfbbbb370c76a14234cb546" });
167165
168- assertTrue (RequestSigning . verifyRequestSignature (
166+ assertTrue (verifyRequestSignature (
169167 RequestSigning .APPLICATION_JSON , null , params ,
170168 "abcde" , 2100000 , HashUtil .HashType .HMAC_SHA256
171169 ));
@@ -175,7 +173,7 @@ public void testVerifyRequestSignatureWithHmacSha256Hash() {
175173 public void testVerifyRequestSignatureWithHmacMd5Hash () throws Exception {
176174 Map <String , String []> params = constructDummyParams ();
177175 params .put ("sig" , new String []{"e0afe267aefd6dd18a848c1681517a19" });
178- assertTrue (RequestSigning . verifyRequestSignature (
176+ assertTrue (verifyRequestSignature (
179177 RequestSigning .APPLICATION_JSON , null , params ,
180178 "abcde" , 2100000 , HashUtil .HashType .HMAC_MD5
181179 ));
@@ -186,53 +184,44 @@ public void testVerifyRequestSignatureWithHmacSha512Hash() {
186184 Map <String , String []> params = constructDummyParams ();
187185 params .put ("sig" , new String []{"1c834a1f6a377d4473971387b065cb38e2ad6c4869ba77b7b53e207a344e87ba04b456dfc697b371a2d1ce476d01dafd4394aa97525eff23badad39d2389a710" });
188186
189- assertTrue (RequestSigning . verifyRequestSignature (
187+ assertTrue (verifyRequestSignature (
190188 RequestSigning .APPLICATION_JSON , null , params ,
191189 "abcde" , 2100000 , HashUtil .HashType .HMAC_SHA512
192190 ));
193191 }
194192
195193 @ Test
196194 public void testVerifyRequestSignatureNoSig () {
197- assertFalse (RequestSigning .verifyRequestSignature (
198- RequestSigning .APPLICATION_JSON , null , constructDummyParamsNoSignature (),
199- "abcde" , 2100000
200- ));
195+ assertFalse (verifySignature (constructDummyParamsNoSignature ()));
201196 }
202197
203198 @ Test
204199 public void testVerifyRequestSignatureBadTimestamp () {
205- assertFalse (RequestSigning .verifyRequestSignature (
206- RequestSigning .APPLICATION_JSON , null , constructDummyParamsInvalidTimestamp (),
207- "abcde" , 2100000
208- ));
200+ assertFalse (verifySignature (constructDummyParamsInvalidTimestamp ()));
209201 }
210202
211203 @ Test
212204 public void testVerifyRequestSignatureMissingTimestamp () {
213- assertFalse (RequestSigning .verifyRequestSignature (
214- RequestSigning .APPLICATION_JSON , null , constructDummyParamsNoTimestamp (),
215- "abcde" , 2100000
216- ));
205+ assertFalse (verifySignature (constructDummyParamsNoTimestamp ()));
217206 }
218207
219208 @ Test
220209 public void testVerifyRequestSignatureHandlesNullParams () {
221210 Map <String , String []> params = constructDummyParams ();
222211 params .put ("b" , new String []{ null });
223212 params .put ("sig" , new String []{"a3368bf718ba104dcb392d8877e8eb2b" });
213+ assertTrue (verifySignature (params ));
214+ }
224215
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" ));
229219 }
230220
231221 private HttpServletRequest constructDummyRequest () {
232222 return constructDummyRequest (null );
233223 }
234224
235-
236225 private HttpServletRequest constructDummyRequestJson () throws Exception {
237226 HttpServletRequest request = mock (HttpServletRequest .class );
238227 String dummyJson = "{\" a\" :\" alphabet\" ,\" b\" :\" bananas\" ,\" timestamp\" :\" 2100\" ,\" sig\" :\" b7f749de27b4adcf736cc95c9a7e059a16c85127\" }" ;
@@ -325,4 +314,8 @@ private HttpServletRequest constructDummyRequest(final Map<String, String[]> nul
325314
326315 return request ;
327316 }
317+
318+ private static boolean verifySignature (Map <String , String []> params ) {
319+ return verifyRequestSignature (APPLICATION_JSON , null , params , "abcde" , 2100000 );
320+ }
328321}
0 commit comments