diff --git a/fileserver/fileserver.go b/fileserver/fileserver.go index f5c7c23..db0da89 100644 --- a/fileserver/fileserver.go +++ b/fileserver/fileserver.go @@ -45,7 +45,7 @@ var logFp *os.File var dbType string var seafileDB, ccnetDB *sql.DB -var seahubURL, seahubPK string +var seahubURL string func init() { flag.StringVar(¢ralDir, "F", "", "central config directory") @@ -266,37 +266,29 @@ func loadSeafileDB() { dbType = dbEngine } -func loadSeahubPK() { +func loadSeahubConfig() error { confPath := filepath.Join(centralDir, "seahub_settings.py") file, err := os.Open(confPath) if err != nil { log.Warnf("Failed to open seahub_settings.py: %v", err) - return + return err } defer file.Close() scanner := bufio.NewScanner(file) - pkRe, err := regexp.Compile(`SECRET_KEY\\s*=\\s*'([^']*)'`) + siteRootExpr := "SITE_ROOT\\s*=\\s*'([^']*)'" + siteRootRe, err := regexp.Compile(siteRootExpr) if err != nil { log.Warnf("Failed to compile regex: %v", err) - return - } - siteRootRe, err := regexp.Compile(`SITE_ROOT\\s*=\\s*'([^']*)'`) - if err != nil { - log.Warnf("Failed to compile regex: %v", err) - return + return err } siteRoot := "" for scanner.Scan() { line := scanner.Text() - matches := pkRe.FindStringSubmatch(line) - if matches != nil { - seahubPK = matches[1] - } - matches = siteRootRe.FindStringSubmatch(line) + matches := siteRootRe.FindStringSubmatch(line) if matches != nil { siteRoot = matches[1] } @@ -306,6 +298,8 @@ func loadSeahubPK() { } else { seahubURL = ("http://127.0.0.1:8000/api/v2.1/internal/user-list/") } + + return nil } func writePidFile(pid_file_path string) error { @@ -406,7 +400,9 @@ func main() { fp.Close() } - loadSeahubPK() + if err := loadSeahubConfig(); err != nil { + log.Fatalf("Failed to load seahub config: %v", err) + } repomgr.Init(seafileDB) diff --git a/fileserver/merge.go b/fileserver/merge.go index c451200..063ce0c 100644 --- a/fileserver/merge.go +++ b/fileserver/merge.go @@ -10,7 +10,6 @@ import ( "strings" "time" - jwt "github.com/golang-jwt/jwt/v5" "github.com/haiwen/seafile-server/fileserver/commitmgr" "github.com/haiwen/seafile-server/fileserver/fsmgr" "github.com/haiwen/seafile-server/fileserver/utils" @@ -381,9 +380,8 @@ func getNickNameByModifier(emailToNickname map[string]string, modifier string) s if ok { return nickname } - if seahubPK != "" { - nickname = postGetNickName(modifier) - } + + nickname = postGetNickName(modifier) if nickname == "" { nickname = modifier @@ -394,32 +392,9 @@ func getNickNameByModifier(emailToNickname map[string]string, modifier string) s return nickname } -type SeahubClaims struct { - Exp int64 - IsInternal bool `json:"is_internal"` - jwt.RegisteredClaims -} - -func (*SeahubClaims) Valid() error { - return nil -} - func postGetNickName(modifier string) string { - claims := SeahubClaims{ - time.Now().Add(time.Second * 300).Unix(), - true, - jwt.RegisteredClaims{}, - } - - token := jwt.NewWithClaims(jwt.GetSigningMethod("HS256"), &claims) - tokenString, err := token.SignedString([]byte(seahubPK)) - if err != nil { - return "" - } - header := map[string][]string{ - "Authorization": {"Token " + tokenString}, - "Content-Type": {"application/json"}, + "Content-Type": {"application/json"}, } data, err := json.Marshal(map[string]interface{}{