jwt_rsa_test.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package jwt
  2. import (
  3. "fmt"
  4. "testing"
  5. )
  6. var (
  7. expiredToken = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJlS3VpcGVyIiwiZXhwIjoxNjM2MDExMzQxLCJpc3MiOiJzYW1wbGVfa2V5LnB1YiJ9.qm5Pq9VxDC10qbOM081U5NwScTOxYV_F5vyqbU9rXB2ebz4kDio_R2tgEgGyJ41lwD7gFl1quBjp_EgokPZNOoGRg5R1Ygf7iF8XJSDxYkspSCsBtZAuMCo3MCz3slQyvnr24qv3idUDhlwO6FPHGLaLHEyvrETSl1ZcECq2wvW01Tc2Jmg0-Kpp6TmEbH5aD-L0or5Bfy0ytBQ64nd2hKVaoADZZOXSt1iH2-1R35fEc_lBw7zs4QpCC2R--muoqYsYkESR08o6wIKAxRJvqeWab3C9k_g0zaPhwa7ZQ9wRzah-tc6PdotZkAyH7BCx-f7llO7UT47k0GnrhBe21g"
  8. badFormatToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmb28iOiJiYXIiLCJleHAiOjE1MDAwLCJpc3MiOiJ0ZXN0In0"
  9. )
  10. func genToken(signKeyName, issuer, aud string) string {
  11. tkStr, _ := CreateToken(signKeyName, issuer, aud)
  12. return tkStr
  13. }
  14. func TestParseToken(t *testing.T) {
  15. type args struct {
  16. th string
  17. }
  18. tests := []struct {
  19. name string
  20. args args
  21. wantErr bool
  22. }{
  23. {
  24. name: "pass: have issuer public key",
  25. args: args{
  26. th: genToken("sample_key", "sample_key.pub", "eKuiper"),
  27. },
  28. wantErr: false,
  29. },
  30. {
  31. name: "fail: token expired",
  32. args: args{
  33. th: expiredToken,
  34. },
  35. wantErr: true,
  36. },
  37. {
  38. name: "fail: token sign error",
  39. args: args{
  40. th: genToken("sample_key", "sample_key.pub", "eKuiper") + "badSign",
  41. },
  42. wantErr: true,
  43. },
  44. {
  45. name: "fail: do not have issuer's public key",
  46. args: args{
  47. th: genToken("sample_key", "notexist.pub", "eKuiper"),
  48. },
  49. wantErr: true,
  50. },
  51. {
  52. name: "bad token format",
  53. args: args{
  54. th: badFormatToken,
  55. },
  56. wantErr: true,
  57. },
  58. }
  59. for _, tt := range tests {
  60. t.Run(tt.name, func(t *testing.T) {
  61. _, err := ParseToken(tt.args.th)
  62. if (err != nil) != tt.wantErr {
  63. t.Errorf("ParseToken() error = %v, wantErr %v", err, tt.wantErr)
  64. return
  65. }
  66. if err != nil {
  67. fmt.Printf("=====================\n")
  68. fmt.Printf("Validate Error %s", err)
  69. }
  70. })
  71. }
  72. }