mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2025-10-28 04:05:21 +08:00
40 lines
924 B
Go
40 lines
924 B
Go
package plg_handler_mcp
|
|
|
|
import (
|
|
"strings"
|
|
"time"
|
|
|
|
. "github.com/mickael-kerjean/filestash/server/common"
|
|
. "github.com/mickael-kerjean/filestash/server/plugin/plg_handler_mcp/types"
|
|
)
|
|
|
|
func (this *Server) RemoveSession(userSession *UserSession) {
|
|
this.expired.Store(Hash(userSession.Token, 16), nil)
|
|
this.sessions.Delete(userSession.Id)
|
|
}
|
|
|
|
func (this *Server) ValidateToken(token string) string {
|
|
if hasToken := strings.HasPrefix(token, "Bearer "); hasToken == false {
|
|
return ""
|
|
}
|
|
token = strings.TrimPrefix(token, "Bearer ")
|
|
if _, ok := this.expired.Load(Hash(token, 16)); ok {
|
|
return ""
|
|
}
|
|
return token
|
|
}
|
|
|
|
func (this *Server) GetSession(uuid string) UserSession {
|
|
ch, _ := this.sessions.LoadOrStore(uuid, UserSession{
|
|
Id: uuid,
|
|
Chan: make(chan JSONRPCRequest),
|
|
CurrDir: "/",
|
|
HomeDir: "/",
|
|
Ping: Ping{
|
|
ID: 0,
|
|
LastResponse: time.Now(),
|
|
},
|
|
})
|
|
return ch.(UserSession)
|
|
}
|