@@ -319,55 +319,100 @@ func TestJWT(t *testing.T) {
319
319
wsUrl := fmt .Sprintf ("ws://%v" , srv .listenAddr ())
320
320
htUrl := fmt .Sprintf ("http://%v" , srv .listenAddr ())
321
321
322
- expOk := []string {
323
- fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()})),
324
- fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix () + 4 })),
325
- fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix () - 4 })),
326
- fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {
327
- "iat" : time .Now ().Unix (),
328
- "exp" : time .Now ().Unix () + 2 ,
329
- })),
330
- fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {
331
- "iat" : time .Now ().Unix (),
332
- "bar" : "baz" ,
333
- })),
322
+ expOk := []func () string {
323
+ func () string {
324
+ return fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()}))
325
+ },
326
+ func () string {
327
+ return fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix () + 4 }))
328
+ },
329
+ func () string {
330
+ return fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix () - 4 }))
331
+ },
332
+ func () string {
333
+ return fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {
334
+ "iat" : time .Now ().Unix (),
335
+ "exp" : time .Now ().Unix () + 2 ,
336
+ }))
337
+ },
338
+ func () string {
339
+ return fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {
340
+ "iat" : time .Now ().Unix (),
341
+ "bar" : "baz" ,
342
+ }))
343
+ },
334
344
}
335
- for i , token := range expOk {
345
+ for i , tokenFn := range expOk {
346
+ token := tokenFn ()
336
347
if err := wsRequest (t , wsUrl , "Authorization" , token ); err != nil {
337
348
t .Errorf ("test %d-ws, token '%v': expected ok, got %v" , i , token , err )
338
349
}
350
+ token = tokenFn ()
339
351
if resp := rpcRequest (t , htUrl , "Authorization" , token ); resp .StatusCode != 200 {
340
352
t .Errorf ("test %d-http, token '%v': expected ok, got %v" , i , token , resp .StatusCode )
341
353
}
342
354
}
343
- expFail := []string {
355
+
356
+ expFail := []func () string {
344
357
// future
345
- fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix () + 6 })),
358
+ func () string {
359
+ return fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix () + 6 }))
360
+ },
346
361
// stale
347
- fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix () - 6 })),
362
+ func () string {
363
+ return fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix () - 6 }))
364
+ },
348
365
// wrong algo
349
- fmt .Sprintf ("Bearer %v" , issueToken (secret , jwt .SigningMethodHS512 , testClaim {"iat" : time .Now ().Unix () + 4 })),
366
+ func () string {
367
+ return fmt .Sprintf ("Bearer %v" , issueToken (secret , jwt .SigningMethodHS512 , testClaim {"iat" : time .Now ().Unix () + 4 }))
368
+ },
350
369
// expired
351
- fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix (), "exp" : time .Now ().Unix ()})),
370
+ func () string {
371
+ return fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix (), "exp" : time .Now ().Unix ()}))
372
+ },
352
373
// missing mandatory iat
353
- fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {})),
354
- // wrong secret
355
- fmt .Sprintf ("Bearer %v" , issueToken ([]byte ("wrong" ), nil , testClaim {"iat" : time .Now ().Unix ()})),
356
- fmt .Sprintf ("Bearer %v" , issueToken ([]byte {}, nil , testClaim {"iat" : time .Now ().Unix ()})),
357
- fmt .Sprintf ("Bearer %v" , issueToken (nil , nil , testClaim {"iat" : time .Now ().Unix ()})),
374
+ func () string {
375
+ return fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {}))
376
+ },
377
+ // wrong secret
378
+ func () string {
379
+ return fmt .Sprintf ("Bearer %v" , issueToken ([]byte ("wrong" ), nil , testClaim {"iat" : time .Now ().Unix ()}))
380
+ },
381
+ func () string {
382
+ return fmt .Sprintf ("Bearer %v" , issueToken ([]byte {}, nil , testClaim {"iat" : time .Now ().Unix ()}))
383
+ },
384
+ func () string {
385
+ return fmt .Sprintf ("Bearer %v" , issueToken (nil , nil , testClaim {"iat" : time .Now ().Unix ()}))
386
+ },
358
387
// Various malformed syntax
359
- fmt .Sprintf ("%v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()})),
360
- fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()})),
361
- fmt .Sprintf ("bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()})),
362
- fmt .Sprintf ("Bearer: %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()})),
363
- fmt .Sprintf ("Bearer:%v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()})),
364
- fmt .Sprintf ("Bearer\t %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()})),
365
- fmt .Sprintf ("Bearer \t %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()})),
388
+ func () string {
389
+ return fmt .Sprintf ("%v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()}))
390
+ },
391
+ func () string {
392
+ return fmt .Sprintf ("Bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()}))
393
+ },
394
+ func () string {
395
+ return fmt .Sprintf ("bearer %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()}))
396
+ },
397
+ func () string {
398
+ return fmt .Sprintf ("Bearer: %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()}))
399
+ },
400
+ func () string {
401
+ return fmt .Sprintf ("Bearer:%v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()}))
402
+ },
403
+ func () string {
404
+ return fmt .Sprintf ("Bearer\t %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()}))
405
+ },
406
+ func () string {
407
+ return fmt .Sprintf ("Bearer \t %v" , issueToken (secret , nil , testClaim {"iat" : time .Now ().Unix ()}))
408
+ },
366
409
}
367
- for i , token := range expFail {
410
+ for i , tokenFn := range expFail {
411
+ token := tokenFn ()
368
412
if err := wsRequest (t , wsUrl , "Authorization" , token ); err == nil {
369
413
t .Errorf ("tc %d-ws, token '%v': expected not to allow, got ok" , i , token )
370
414
}
415
+ token = tokenFn ()
371
416
if resp := rpcRequest (t , htUrl , "Authorization" , token ); resp .StatusCode != 403 {
372
417
t .Errorf ("tc %d-http, token '%v': expected not to allow, got %v" , i , token , resp .StatusCode )
373
418
}
0 commit comments