1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-09-09 03:08:57 +00:00

Add json exp (#699)

* Add json exp

* Add json exp and add gen jwt token

* Gen seahub and notif jwt token

* Add exp for gen jwt token

* Delete gen_jwt_token API

* Delete set exp to 72 hour

---------

Co-authored-by: 杨赫然 <heran.yang@seafile.com>
This commit is contained in:
feiniks
2024-09-18 17:59:24 +08:00
committed by GitHub
parent 72753e152b
commit 61126d108c
12 changed files with 93 additions and 123 deletions

View File

@@ -17,7 +17,6 @@ import (
"sync"
"time"
jwt "github.com/golang-jwt/jwt/v5"
"github.com/gorilla/mux"
"github.com/haiwen/seafile-server/fileserver/blockmgr"
"github.com/haiwen/seafile-server/fileserver/commitmgr"
@@ -726,17 +725,6 @@ func getCheckQuotaCB(rsp http.ResponseWriter, r *http.Request) *appError {
return nil
}
type MyClaims struct {
Exp int64
RepoID string `json:"repo_id"`
UserName string `json:"username"`
jwt.RegisteredClaims
}
func (*MyClaims) Valid() error {
return nil
}
func getJWTTokenCB(rsp http.ResponseWriter, r *http.Request) *appError {
vars := mux.Vars(r)
repoID := vars["repoid"]
@@ -750,7 +738,8 @@ func getJWTTokenCB(rsp http.ResponseWriter, r *http.Request) *appError {
return appErr
}
tokenString, err := genJWTToken(repoID, user)
exp := time.Now().Add(time.Hour * 72).Unix()
tokenString, err := utils.GenNotifJWTToken(repoID, user, exp)
if err != nil {
return &appError{err, "", http.StatusInternalServerError}
}
@@ -762,24 +751,6 @@ func getJWTTokenCB(rsp http.ResponseWriter, r *http.Request) *appError {
return nil
}
func genJWTToken(repoID, user string) (string, error) {
claims := MyClaims{
time.Now().Add(time.Hour * 72).Unix(),
repoID,
user,
jwt.RegisteredClaims{},
}
token := jwt.NewWithClaims(jwt.GetSigningMethod("HS256"), &claims)
tokenString, err := token.SignedString([]byte(seahubPK))
if err != nil {
err := fmt.Errorf("failed to gen jwt token for repo %s", repoID)
return "", err
}
return tokenString, nil
}
func getFsObjIDCB(rsp http.ResponseWriter, r *http.Request) *appError {
recvChan := make(chan *calResult)