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:
@@ -45,7 +45,7 @@ var logFp *os.File
|
|||||||
|
|
||||||
var dbType string
|
var dbType string
|
||||||
var seafileDB, ccnetDB *sql.DB
|
var seafileDB, ccnetDB *sql.DB
|
||||||
var seahubURL, seahubPK string
|
var seahubURL string
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
flag.StringVar(¢ralDir, "F", "", "central config directory")
|
flag.StringVar(¢ralDir, "F", "", "central config directory")
|
||||||
@@ -266,37 +266,29 @@ func loadSeafileDB() {
|
|||||||
dbType = dbEngine
|
dbType = dbEngine
|
||||||
}
|
}
|
||||||
|
|
||||||
func loadSeahubPK() {
|
func loadSeahubConfig() error {
|
||||||
confPath := filepath.Join(centralDir, "seahub_settings.py")
|
confPath := filepath.Join(centralDir, "seahub_settings.py")
|
||||||
|
|
||||||
file, err := os.Open(confPath)
|
file, err := os.Open(confPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Warnf("Failed to open seahub_settings.py: %v", err)
|
log.Warnf("Failed to open seahub_settings.py: %v", err)
|
||||||
return
|
return err
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
||||||
scanner := bufio.NewScanner(file)
|
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 {
|
if err != nil {
|
||||||
log.Warnf("Failed to compile regex: %v", err)
|
log.Warnf("Failed to compile regex: %v", err)
|
||||||
return
|
return err
|
||||||
}
|
|
||||||
siteRootRe, err := regexp.Compile(`SITE_ROOT\\s*=\\s*'([^']*)'`)
|
|
||||||
if err != nil {
|
|
||||||
log.Warnf("Failed to compile regex: %v", err)
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
siteRoot := ""
|
siteRoot := ""
|
||||||
for scanner.Scan() {
|
for scanner.Scan() {
|
||||||
line := scanner.Text()
|
line := scanner.Text()
|
||||||
matches := pkRe.FindStringSubmatch(line)
|
matches := siteRootRe.FindStringSubmatch(line)
|
||||||
if matches != nil {
|
|
||||||
seahubPK = matches[1]
|
|
||||||
}
|
|
||||||
matches = siteRootRe.FindStringSubmatch(line)
|
|
||||||
if matches != nil {
|
if matches != nil {
|
||||||
siteRoot = matches[1]
|
siteRoot = matches[1]
|
||||||
}
|
}
|
||||||
@@ -306,6 +298,8 @@ func loadSeahubPK() {
|
|||||||
} else {
|
} else {
|
||||||
seahubURL = ("http://127.0.0.1:8000/api/v2.1/internal/user-list/")
|
seahubURL = ("http://127.0.0.1:8000/api/v2.1/internal/user-list/")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func writePidFile(pid_file_path string) error {
|
func writePidFile(pid_file_path string) error {
|
||||||
@@ -406,7 +400,9 @@ func main() {
|
|||||||
fp.Close()
|
fp.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
loadSeahubPK()
|
if err := loadSeahubConfig(); err != nil {
|
||||||
|
log.Fatalf("Failed to load seahub config: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
repomgr.Init(seafileDB)
|
repomgr.Init(seafileDB)
|
||||||
|
|
||||||
|
@@ -10,7 +10,6 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
jwt "github.com/golang-jwt/jwt/v5"
|
|
||||||
"github.com/haiwen/seafile-server/fileserver/commitmgr"
|
"github.com/haiwen/seafile-server/fileserver/commitmgr"
|
||||||
"github.com/haiwen/seafile-server/fileserver/fsmgr"
|
"github.com/haiwen/seafile-server/fileserver/fsmgr"
|
||||||
"github.com/haiwen/seafile-server/fileserver/utils"
|
"github.com/haiwen/seafile-server/fileserver/utils"
|
||||||
@@ -381,9 +380,8 @@ func getNickNameByModifier(emailToNickname map[string]string, modifier string) s
|
|||||||
if ok {
|
if ok {
|
||||||
return nickname
|
return nickname
|
||||||
}
|
}
|
||||||
if seahubPK != "" {
|
|
||||||
nickname = postGetNickName(modifier)
|
nickname = postGetNickName(modifier)
|
||||||
}
|
|
||||||
|
|
||||||
if nickname == "" {
|
if nickname == "" {
|
||||||
nickname = modifier
|
nickname = modifier
|
||||||
@@ -394,32 +392,9 @@ func getNickNameByModifier(emailToNickname map[string]string, modifier string) s
|
|||||||
return nickname
|
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 {
|
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{
|
header := map[string][]string{
|
||||||
"Authorization": {"Token " + tokenString},
|
"Content-Type": {"application/json"},
|
||||||
"Content-Type": {"application/json"},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
data, err := json.Marshal(map[string]interface{}{
|
data, err := json.Marshal(map[string]interface{}{
|
||||||
|
Reference in New Issue
Block a user