auth_test.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package ci
  2. import (
  3. "os"
  4. "testing"
  5. "time"
  6. "github.com/fatedier/frp/tests/config"
  7. "github.com/fatedier/frp/tests/consts"
  8. "github.com/fatedier/frp/tests/util"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. const FRPS_TOKEN_TCP_CONF = `
  12. [common]
  13. bind_addr = 0.0.0.0
  14. bind_port = 20000
  15. log_file = console
  16. log_level = debug
  17. authentication_method = token
  18. token = 123456
  19. `
  20. const FRPC_TOKEN_TCP_CONF = `
  21. [common]
  22. server_addr = 127.0.0.1
  23. server_port = 20000
  24. log_file = console
  25. log_level = debug
  26. authentication_method = token
  27. token = 123456
  28. protocol = tcp
  29. [tcp]
  30. type = tcp
  31. local_port = 10701
  32. remote_port = 20801
  33. `
  34. func TestTcpWithTokenAuthentication(t *testing.T) {
  35. assert := assert.New(t)
  36. frpsCfgPath, err := config.GenerateConfigFile(consts.FRPS_NORMAL_CONFIG, FRPS_TOKEN_TCP_CONF)
  37. if assert.NoError(err) {
  38. defer os.Remove(frpsCfgPath)
  39. }
  40. frpcCfgPath, err := config.GenerateConfigFile(consts.FRPC_NORMAL_CONFIG, FRPC_TOKEN_TCP_CONF)
  41. if assert.NoError(err) {
  42. defer os.Remove(frpcCfgPath)
  43. }
  44. frpsProcess := util.NewProcess(consts.FRPS_BIN_PATH, []string{"-c", frpsCfgPath})
  45. err = frpsProcess.Start()
  46. if assert.NoError(err) {
  47. defer frpsProcess.Stop()
  48. }
  49. time.Sleep(200 * time.Millisecond)
  50. frpcProcess := util.NewProcess(consts.FRPC_BIN_PATH, []string{"-c", frpcCfgPath})
  51. err = frpcProcess.Start()
  52. if assert.NoError(err) {
  53. defer frpcProcess.Stop()
  54. }
  55. time.Sleep(500 * time.Millisecond)
  56. // test tcp
  57. res, err := util.SendTcpMsg("127.0.0.1:20801", consts.TEST_TCP_ECHO_STR)
  58. assert.NoError(err)
  59. assert.Equal(consts.TEST_TCP_ECHO_STR, res)
  60. }