1
0
Эх сурвалжийг харах

new feature multi user auth with socks5

zhangwei 5 жил өмнө
parent
commit
11d185ad59

+ 1 - 1
bridge/bridge.go

@@ -488,7 +488,7 @@ loop:
 					tl.Password = t.Password
 					tl.LocalPath = t.LocalPath
 					tl.StripPre = t.StripPre
-					tl.MultiUser = t.MultiUser
+					tl.MultiAccount = t.MultiAccount
 					if !client.HasTunnel(tl) {
 						if err := file.GetDb().NewTask(tl); err != nil {
 							logs.Notice("Add task error ", err.Error())

+ 3 - 3
lib/config/config.go

@@ -239,15 +239,15 @@ func dealTunnel(s string) *file.Tunnel {
 			t.LocalPath = item[1]
 		case "strip_pre":
 			t.StripPre = item[1]
-		case "multi_user":
-			t.MultiUser = new(file.MultiUser)
+		case "multi_account":
+			t.MultiAccount = &file.MultiAccount{}
 			if b, err := common.ReadAllFromFile(item[1]); err != nil {
 				panic(err)
 			} else {
 				if content, err := common.ParseStr(string(b)); err != nil {
 					panic(err)
 				} else {
-					t.MultiUser.UserMap = dealMultiUser(content)
+					t.MultiAccount.AccountMap = dealMultiUser(content)
 				}
 			}
 		}

+ 19 - 19
lib/file/obj.go

@@ -124,23 +124,23 @@ func (s *Client) HasHost(h *Host) bool {
 }
 
 type Tunnel struct {
-	Id         int
-	Port       int
-	ServerIp   string
-	Mode       string
-	Status     bool
-	RunStatus  bool
-	Client     *Client
-	Ports      string
-	Flow       *Flow
-	Password   string
-	Remark     string
-	TargetAddr string
-	NoStore    bool
-	LocalPath  string
-	StripPre   string
-	Target     *Target
-	MultiUser  *MultiUser
+	Id           int
+	Port         int
+	ServerIp     string
+	Mode         string
+	Status       bool
+	RunStatus    bool
+	Client       *Client
+	Ports        string
+	Flow         *Flow
+	Password     string
+	Remark       string
+	TargetAddr   string
+	NoStore      bool
+	LocalPath    string
+	StripPre     string
+	Target       *Target
+	MultiAccount *MultiAccount
 	Health
 	sync.RWMutex
 }
@@ -185,8 +185,8 @@ type Target struct {
 	sync.RWMutex
 }
 
-type MultiUser struct {
-	UserMap map[string]string // multi user and pwd
+type MultiAccount struct {
+	AccountMap map[string]string // multi account and pwd
 }
 
 func (s *Target) GetRandomTarget() (string, error) {

+ 3 - 3
server/proxy/socks5.go

@@ -199,7 +199,7 @@ func (s *Sock5ModeServer) handleConn(c net.Conn) {
 		c.Close()
 		return
 	}
-	if (s.task.Client.Cnf.U != "" && s.task.Client.Cnf.P != "") || (s.task.MultiUser != nil && len(s.task.MultiUser.UserMap) > 0) {
+	if (s.task.Client.Cnf.U != "" && s.task.Client.Cnf.P != "") || (s.task.MultiAccount != nil && len(s.task.MultiAccount.AccountMap) > 0) {
 		buf[1] = UserPassAuth
 		c.Write(buf)
 		if err := s.Auth(c); err != nil {
@@ -238,11 +238,11 @@ func (s *Sock5ModeServer) Auth(c net.Conn) error {
 	}
 
 	var U, P string
-	if s.task.MultiUser != nil {
+	if s.task.MultiAccount != nil {
 		// enable multi user auth
 		U = string(user)
 		var ok bool
-		P, ok = s.task.MultiUser.UserMap[U]
+		P, ok = s.task.MultiAccount.AccountMap[U]
 		if !ok {
 			return errors.New("验证不通过")
 		}