1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-09-19 18:16:25 +00:00

Go dont't parse seahub secret key

This commit is contained in:
杨赫然
2024-08-29 10:01:27 +08:00
parent 915be2dc90
commit ec5445b93f
2 changed files with 15 additions and 44 deletions

View File

@@ -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(&centralDir, "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)

View File

@@ -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)
}
if nickname == "" {
nickname = modifier
@@ -394,31 +392,8 @@ 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"},
}