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,