Просмотр исходного кода

test case for wrong auth method

V2Ray 10 лет назад
Родитель
Сommit
7cc8d90f26
2 измененных файлов с 47 добавлено и 2 удалено
  1. 2 2
      common/log/access.go
  2. 45 0
      proxy/socks/socks_test.go

+ 2 - 2
common/log/access.go

@@ -3,8 +3,8 @@ package log
 import (
 	"log"
 	"os"
-  
-  "github.com/v2ray/v2ray-core/common/platform"
+
+	"github.com/v2ray/v2ray-core/common/platform"
 )
 
 // AccessStatus is the status of an access request from clients.

+ 45 - 0
proxy/socks/socks_test.go

@@ -171,6 +171,51 @@ func TestSocksTcpConnectWithWrongUserPass(t *testing.T) {
 	assert.Error(err).IsNotNil()
 }
 
+func TestSocksTcpConnectWithWrongAuthMethod(t *testing.T) {
+	assert := unit.Assert(t)
+	port := uint16(38405)
+
+	och := &mocks.OutboundConnectionHandler{
+		Data2Send:   bytes.NewBuffer(make([]byte, 0, 1024)),
+		Data2Return: []byte("The data to be returned to socks server."),
+	}
+
+	core.RegisterOutboundConnectionHandlerFactory("mock_och", och)
+
+	config := mocks.Config{
+		PortValue: port,
+		InboundConfigValue: &mocks.ConnectionConfig{
+			ProtocolValue: "socks",
+			SettingsValue: &json.SocksConfig{
+				AuthMethod: "password",
+				Accounts: []json.SocksAccount{
+					json.SocksAccount{
+						Username: "userx",
+						Password: "passy",
+					},
+				},
+			},
+		},
+		OutboundConfigValue: &mocks.ConnectionConfig{
+			ProtocolValue: "mock_och",
+			SettingsValue: nil,
+		},
+	}
+
+	point, err := core.NewPoint(&config)
+	assert.Error(err).IsNil()
+
+	err = point.Start()
+	assert.Error(err).IsNil()
+
+	socks5Client, err := proxy.SOCKS5("tcp", "127.0.0.1:38405", nil, proxy.Direct)
+	assert.Error(err).IsNil()
+
+	targetServer := "1.2.3.4:443"
+	_, err = socks5Client.Dial("tcp", targetServer)
+	assert.Error(err).IsNotNil()
+}
+
 func TestSocksUdpSend(t *testing.T) {
 	assert := unit.Assert(t)
 	port := uint16(12372)