mirror of
https://github.com/haiwen/seafile-server.git
synced 2025-09-19 10:03:40 +00:00
Go dont't parse seahub secret key
This commit is contained in:
@@ -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)
|
||||
|
||||
|
@@ -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{}{
|
||||
|
Reference in New Issue
Block a user