test.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. package common
  2. import (
  3. "bytes"
  4. "context"
  5. "encoding/json"
  6. "fmt"
  7. "io/ioutil"
  8. "net/http"
  9. "time"
  10. "dashoo.cn/common_definition/admin/user_def"
  11. "dashoo.cn/common_definition/auth"
  12. "dashoo.cn/micro_libary/micro_srv"
  13. "dashoo.cn/micro_libary/request"
  14. "github.com/gogf/gf/encoding/gjson"
  15. )
  16. func TestRpcxHandler(tenant, token, url, path, method string, data string) ([]byte, error) {
  17. req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(data)))
  18. if err != nil {
  19. return nil, err
  20. }
  21. req.Header.Set("content-type", "application/json")
  22. req.Header.Set("X-RPCX-SerializeType", "1")
  23. req.Header.Set("X-RPCX-ServicePath", path)
  24. req.Header.Set("X-RPCX-ServiceMethod", method)
  25. req.Header.Set("SrvEnv", "dev")
  26. req.Header.Set("Tenant", tenant)
  27. req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", token))
  28. // req.Header.Set("X-RPCX-Meta", fmt.Sprintf("ts=%s&sign=%s", ts, sign))
  29. cli := &http.Client{Timeout: 5 * time.Second}
  30. resp, err := cli.Do(req)
  31. if err != nil {
  32. return nil, err
  33. }
  34. defer resp.Body.Close()
  35. return ioutil.ReadAll(resp.Body)
  36. }
  37. func TestHandler(tenant, token, url, data string) ([]byte, error) {
  38. req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(data)))
  39. if err != nil {
  40. return nil, err
  41. }
  42. req.Header.Set("content-type", "application/json")
  43. req.Header.Set("Tenant", tenant)
  44. req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", token))
  45. cli := &http.Client{Timeout: 5 * time.Second}
  46. resp, err := cli.Do(req)
  47. if err != nil {
  48. return nil, err
  49. }
  50. defer resp.Body.Close()
  51. return ioutil.ReadAll(resp.Body)
  52. }
  53. func Token(tenant, username, password string) string {
  54. userService := micro_srv.InitMicroSrvClient("User", "micro_srv.admin")
  55. authService := micro_srv.InitMicroSrvClient("Auth", "micro_srv.auth")
  56. defer userService.Close()
  57. defer authService.Close()
  58. rsp := &user_def.LoginResp{}
  59. err := userService.Call(context.TODO(), "Login", &user_def.LoginReq{
  60. Tenant: tenant,
  61. User: username,
  62. Password: password,
  63. Ip: "",
  64. UserAgent: "",
  65. }, rsp)
  66. if err != nil {
  67. panic(err)
  68. }
  69. authrsp := &auth.Response{}
  70. err = authService.Call(context.TODO(), "GetToken", &auth.Request{
  71. Tenant: tenant,
  72. UserKey: username,
  73. Uuid: rsp.CommonMsg.Data.(string),
  74. Data: string(rsp.UserInfo),
  75. }, authrsp)
  76. if err != nil {
  77. panic(err)
  78. }
  79. j, err := gjson.DecodeToJson(authrsp.Data)
  80. if err != nil {
  81. panic(err)
  82. }
  83. // fmt.Printf("%#v\n", rsp.CommonMsg)
  84. // fmt.Printf("%#v\n", string(rsp.UserInfo))
  85. // fmt.Printf("%#v\n", authrsp)
  86. return j.GetString("token")
  87. }
  88. func PrintIndentJson(data []byte) {
  89. var v interface{}
  90. err := json.Unmarshal(data, &v)
  91. if err != nil {
  92. panic(err)
  93. }
  94. data, err = json.MarshalIndent(v, "", " ")
  95. if err != nil {
  96. panic(err)
  97. }
  98. fmt.Println(string(data))
  99. }
  100. func Auth(tenant string, userId int32, uuid, username, realname, deptId string) (interface{}, error) {
  101. authService := micro_srv.InitMicroSrvClient("Auth", "micro_srv.auth")
  102. defer authService.Close()
  103. authUserinfo := request.UserInfo{
  104. Id: userId,
  105. Uuid: uuid,
  106. UserName: username,
  107. RealName: realname,
  108. DeptId: deptId,
  109. }
  110. authUserinfoData, err := json.Marshal(authUserinfo)
  111. if err != nil {
  112. return nil, err
  113. }
  114. authrsp := &auth.Response{}
  115. err = authService.Call(context.TODO(), "GetToken", &auth.Request{
  116. Tenant: tenant,
  117. UserKey: username,
  118. Uuid: uuid,
  119. Data: string(authUserinfoData),
  120. }, authrsp)
  121. if err != nil {
  122. return nil, err
  123. }
  124. data := map[string]interface{}{}
  125. // authrsp.Data "{\"tenant\":\"EmGVD5szuT\",\"token\":\"ajg7o1Dts1JrKCm6VtgyuuaYbUIiirXxI5+6WzYnC7gWl+43NdKq6LbWxU1zWhsBaL0A/CIkBoefM0vuu6h4ZA==\",\"userKey\":\"dashoo\",\"uuid\":\"095771e03f6fbd20af351dc259560232\"}"
  126. err = json.Unmarshal([]byte(authrsp.Data), &data)
  127. return data, err
  128. }