jwt_test.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package jwt
  2. import (
  3. "testing"
  4. "time"
  5. "github.com/dgrijalva/jwt-go"
  6. )
  7. const privateKey = `-----BEGIN RSA PRIVATE KEY-----
  8. MIIEpQIBAAKCAQEA1aC2ROAGNjpmpevOlg/NTVtgd8fdve3cM1J69uS6UHoZJWR2
  9. pmIzOr5EQkQjr0ldnS4zP9feHPTeGebcvekqAzrGwEgKTMe5Scu64f+y77l1p5RV
  10. FI2WLZhCw1zaYI3GiJMzYx5YeMRT2aKizIe2ORIooXdypx+xY8E4vTERsAr+w1Zb
  11. U2P+HSc65u7FYxjNx5y4m4lsE4oRHcaNK9DxtdccRQmugVRHINdZFtcNmtArZK2p
  12. sexpdmkRDL3tJtQD3O1GcLR7JEMQR1UGrjvvd/ZQmQIVgz+D9R3Nd/B8mSHFwV3z
  13. Mt3I1y7Pd1ZMYve06iTzqxBBDs4ot60BQj85awIDAQABAoIBAQDCZis3Zf2BH4gF
  14. eR5XZC3ZNUwF9DUO/wMhGO+Y+O+rCFEVu+RU6Ivh6v7GpqcqfcLYpBAzCseu5g2u
  15. 2G0LzMBUjAoNNAFbeWxdgS2hN0Sn7cbpJox91ZJSD3rBuR9oOdvusLVUf2rXCyGa
  16. rOsk4GKscJ/Uv5PwDWEpe82cLKkB3nW9iXDUNv6+QQyLf9Rfikxzzcm9PW3qOCBE
  17. FFUGgFiC4vXL7mjodwQ4uxS8Krpn1poyBDkHGOv5yMbsOouaR6ShsJHPXSeeTfu5
  18. y8THhRJDzN2L39ecKdLwv1fKcQgLDqT69TwOJ//78k777yy3tDhU+0S/nDQQdEXF
  19. Hx5s7DPxAoGBAPFqJyLpRj93HiyS5LCQv93thQ7tc+fnMCBembVh5ErTTfQPREKT
  20. B6+42UWWch8xjcL1JQKcyBbgGeA5kLzMKmi+JEtHXpoqznkkJLBLXmuNvmwbXB3x
  21. uuAj904fOdntDoMsoExIt+GA0sGyx825TxMNoSiC7lMnQUtS/2JTPlE9AoGBAOKI
  22. yuJmzZb/QMC7x83/PqhqJCxd9myxxc1KEBYqLM3hwb0dhG22ep84QxyLf0ScrhUf
  23. d5KGLIZ/lwCW3kZsSE6GzlK9GTzhbWeNEBSk8hhDITI+P+9ca+j1jNRzrQA3Ilx1
  24. U7CiuDPHkgh4QFU8Vxlg35zad6UH9Sojazd/8Y/HAoGBAJ67UF5JCXJjTQi70Pgz
  25. RKSULr/A60vYm7E84k37vpJgW0oU26n2aMBmhx2VLRZLi81bSGluUrWPxhPDZeJt
  26. T5ktJEoG9DHj4XyPgjwUYlHPkhwc5TWfImOL4miQaYZbswYWypM94QG5pVnMxkkD
  27. BfYeKQ+s/yzXi7wOJ3MsDrZ1AoGBAN/b4/nlM0cDCP8s0Z7cnBObiBGb7ReueVSL
  28. 2ue8V7hAXs6+q44rpHNRCujbZTHtTw4qoWPXWYqz7Qm1DQQ0nyOSjbMvkRAbiJyq
  29. xnhQI7kcJWLcJxwnja+Rb9DGWvB6i2covkIwGq14ivP5uUFBtqSqmW8MaO1Ztskk
  30. ZSBcO98jAoGAbHMD0WmQqnKpVHbchOfldluzzWkWZMBQlX23Fr7iHfzXiikjgCqK
  31. 6HtRq1m6AGIZsbM+Dd53knurbTo49GfGjneN0ZtCFbiBOwFx0OX69UZcxmd+3Cqz
  32. 14QDSlFpfXTbugpZFYC9KTakY7nDgsj1Ei2WjTE0gVSlUtuiw1XykCM=
  33. -----END RSA PRIVATE KEY-----`
  34. const publicKey = `-----BEGIN PUBLIC KEY-----
  35. MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAokQEiPqzrL22jrKqWN3a
  36. 9XXYtXLhJOolmYoPRfBpWFr5ml/vcEsMMPmVc9EUhDSXyo2tTgiCBhqyLZ+C/9ob
  37. JJv92W4sPaPjeVHhvpFdC+a0RDQyb9X8s5xuUBVCyh7UlAs2dOHQ3kqAhhybATHl
  38. OvOksc8GFp9hxQZtqeVhmjMKjdJYMcIi8HLL3v/CvZO43ClohSRVB7mxNYm4ddTg
  39. c1jFmtBAUuu3ha7qm8CXQFAEYwf89PkjfhKXaALAVS09lpy8Qx3rCGjeuFbKHtVe
  40. dy/CZmjq3xHrJVNcKwaRFCXUroyuWjFlITyQCHjugh+6MiDnz3oP/4Y3rXaMag+E
  41. 9QIDAQAB
  42. -----END PUBLIC KEY-----`
  43. var (
  44. userName = "1234567890"
  45. )
  46. func TestJWTTokenGenerate_GenerateToken(t *testing.T) {
  47. key, err := jwt.ParseRSAPrivateKeyFromPEM([]byte(privateKey))
  48. if err != nil {
  49. t.Fatalf("cannot parse private key: %v", err)
  50. }
  51. g := NewJWTTokenGen("kpt-tmr-group", key)
  52. g.nowFunc = func() time.Time {
  53. return time.Now()
  54. }
  55. token, err := g.GenerateToken(userName, 7200)
  56. if err != nil {
  57. t.Fatalf("cannot generate token: %v", err)
  58. }
  59. want := `eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MTYyNDYyMjIsImlhdCI6MTUxNjIzOTAyMiwiaXNzIjoia3B0LXRtci1ncm91cCIsInN1YiI6IjEyMzQ1Njc4OTAtMTIzIn0.fNKcmzjsghdCVn0ZhPHt3mg_I22IZvTQyMaN8xt9GHoZdUpml1sqZ24-mamCaIK1T-pP0USqc69ZkeUBjOz1hi-p0u3Z8u8J8uaaTh0RD7cYxhT6ey5-KzctiuiSutFH8G5Y3pZ3ffRO-b_8hKpTICFET9-3_4pWgtQ4_M76JnLZEm_0-3e4MA3GRba0S6ntZ19TiOeNkF30LQjQ3jCSp3xQb-NoDRdlQKWoYDAQI33RxAjtR5ZsLwee278qbzWjwtd_GyqJJuaokfFsc0JZXFSIOffK1S6qHijSsK85U6PciX05M6NkE9LMyAi990Q6iLk4NUrVE5gmEXA9MeEm0w`
  60. if want != token {
  61. t.Fatalf("wrong token generated. got: %q", token)
  62. }
  63. }
  64. func TestJWTTokenVerifier_ParseToken(t *testing.T) {
  65. /*publicKeyFromPEM, err := jwt.ParseRSAPublicKeyFromPEM([]byte(publicKey))
  66. if err != nil {
  67. t.Fatalf("cannot parse public key: %v", err)
  68. }
  69. v := &JWTTokenVerifier{PublicKey: publicKeyFromPEM}
  70. token := `eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2ODk4Mjc3OTMsImlhdCI6MTY4OTgyMDU5MywiaXNzIjoia3B0LXRtci1ncm91cCIsInN1YiI6ImR1YW54aWFvZHVhbi1lMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSJ9.cdtoNMAU5WEO-OTqHS9EQXvRBhanbB_B591LBxDeFkOe1QM7m1lZpLpV-BniK785ZMNmfjqTfSpXT2N2E53mjZn1MTmRhi2tsBhrlvm6VpvQES8_TSL8bOUhDOYjhnFYB_qpua_ykrmm1DAf8wDWBapx8gYRN8WmbeAxY6Q8bnU9CsBM_jeEzr-CDP73DuFZDX0cpf_AFYBYL7DNU_ju6ufP4HwGSfuGJXcTXqfQh5eUoAZuG_YgSC2DPoKPtKl1QD_oy1k-g6StkKWjGe8pfmx4FyqfTTV3bo-Uthr5RQ0CjLKseOnwuHt6J5GOcpttgA3GnSUxETUq5qMOenWnDA`
  71. userNameVerifier, err := v.ParseToken(token)
  72. if err != nil {
  73. t.Fatalf("Verifier token : %v", err)
  74. }
  75. want := "duanxiaoduan"
  76. if want != userNameVerifier {
  77. t.Fatalf("token err")
  78. }*/
  79. }