From 282a2e97bd7b508ac6d4b51c9f8926dcf6be85fc Mon Sep 17 00:00:00 2001 From: Mmx233 Date: Fri, 1 Dec 2023 00:25:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Info=20=E5=AD=97=E6=AE=B5=E5=89=8D?= =?UTF-8?q?=E7=BC=80=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87=20meta=20?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/config/default.go | 1 + pkg/srun/models.go | 1 + pkg/srun/srun.go | 9 ++++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/internal/config/default.go b/internal/config/default.go index c899872..6eae28b 100644 --- a/internal/config/default.go +++ b/internal/config/default.go @@ -16,6 +16,7 @@ var defaultConfig = ConfFromFile{ Enc: "srun_bx1", OS: "Windows 10", Name: "windows", + InfoPrefix: "SRBX1", DoubleStack: false, }, Settings: SettingsConf{ diff --git a/pkg/srun/models.go b/pkg/srun/models.go index 7f5ebe2..1d98c9d 100644 --- a/pkg/srun/models.go +++ b/pkg/srun/models.go @@ -15,6 +15,7 @@ type LoginMeta struct { Enc string `json:"enc" yaml:"enc"` OS string `json:"os" yaml:"os"` Name string `json:"name" yaml:"name"` + InfoPrefix string `json:"info_prefix" yaml:"info_prefix"` DoubleStack bool `json:"double_stack" json:"double_stack"` } diff --git a/pkg/srun/srun.go b/pkg/srun/srun.go index 5000a9f..d8b6e19 100644 --- a/pkg/srun/srun.go +++ b/pkg/srun/srun.go @@ -3,6 +3,7 @@ package srun import ( "encoding/json" "errors" + "fmt" log "github.com/sirupsen/logrus" "net/http" ) @@ -83,7 +84,12 @@ func (c Srun) DoLogin(clientIP string) error { if err != nil { return err } - EncryptedInfo := "{SRBX1}" + Base64(XEncode(string(info), tokenStr)) + + var infoPrefix string + if c.LoginInfo.Meta.InfoPrefix != "" { + infoPrefix = fmt.Sprintf("{%s}", c.LoginInfo.Meta.InfoPrefix) + } + EncryptedInfo := infoPrefix + Base64(XEncode(string(info), tokenStr)) Md5Str := Md5(tokenStr) EncryptedMd5 := "{MD5}" + Md5Str EncryptedChkstr := Sha1( @@ -99,6 +105,7 @@ func (c Srun) DoLogin(clientIP string) error { } else { doubleStack = "0" } + res, err = c.api.Login(&LoginRequest{ Username: c.LoginInfo.Form.Username, Password: EncryptedMd5,