jwt_rsa_test.go 1.9 KB

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