mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2026-10-19 16:14:39 +00:00
chore (refactoring): pkg migration for config
This commit is contained in:
+19
-89
@@ -1,97 +1,27 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"os"
|
||||
_ "unsafe"
|
||||
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
)
|
||||
|
||||
//go:linkname APP_VERSION github.com/mickael-kerjean/filestash/server/pkg/env.APP_VERSION
|
||||
var APP_VERSION string
|
||||
|
||||
//go:linkname COOKIE_NAME_PROOF github.com/mickael-kerjean/filestash/server/pkg/env.COOKIE_NAME_PROOF
|
||||
var COOKIE_NAME_PROOF string
|
||||
|
||||
//go:linkname COOKIE_NAME_ADMIN github.com/mickael-kerjean/filestash/server/pkg/env.COOKIE_NAME_ADMIN
|
||||
var COOKIE_NAME_ADMIN string
|
||||
|
||||
//go:linkname COOKIE_PATH_ADMIN github.com/mickael-kerjean/filestash/server/pkg/env.COOKIE_PATH_ADMIN
|
||||
var COOKIE_PATH_ADMIN string
|
||||
|
||||
//go:linkname COOKIE_PATH github.com/mickael-kerjean/filestash/server/pkg/env.COOKIE_PATH
|
||||
var COOKIE_PATH string
|
||||
|
||||
//go:linkname URL_SETUP github.com/mickael-kerjean/filestash/server/pkg/env.URL_SETUP
|
||||
var URL_SETUP string
|
||||
|
||||
//go:linkname CONFIG_PATH github.com/mickael-kerjean/filestash/server/pkg/env.CONFIG_PATH
|
||||
var CONFIG_PATH string
|
||||
|
||||
//go:linkname CERT_PATH github.com/mickael-kerjean/filestash/server/pkg/env.CERT_PATH
|
||||
var CERT_PATH string
|
||||
|
||||
//go:linkname PLUGIN_PATH github.com/mickael-kerjean/filestash/server/pkg/env.PLUGIN_PATH
|
||||
var PLUGIN_PATH string
|
||||
|
||||
//go:linkname DB_PATH github.com/mickael-kerjean/filestash/server/pkg/env.DB_PATH
|
||||
var DB_PATH string
|
||||
|
||||
//go:linkname FTS_PATH github.com/mickael-kerjean/filestash/server/pkg/env.FTS_PATH
|
||||
var FTS_PATH string
|
||||
|
||||
//go:linkname LOG_PATH github.com/mickael-kerjean/filestash/server/pkg/env.LOG_PATH
|
||||
var LOG_PATH string
|
||||
|
||||
//go:linkname TMP_PATH github.com/mickael-kerjean/filestash/server/pkg/env.TMP_PATH
|
||||
var TMP_PATH string
|
||||
|
||||
//go:linkname APPNAME github.com/mickael-kerjean/filestash/server/pkg/env.APPNAME
|
||||
var APPNAME string
|
||||
|
||||
//go:linkname BASE github.com/mickael-kerjean/filestash/server/pkg/env.BASE
|
||||
var BASE string
|
||||
|
||||
//go:linkname BUILD_REF github.com/mickael-kerjean/filestash/server/pkg/env.BUILD_REF
|
||||
var BUILD_REF string
|
||||
|
||||
//go:linkname BUILD_DATE github.com/mickael-kerjean/filestash/server/pkg/env.BUILD_DATE
|
||||
var BUILD_DATE string
|
||||
|
||||
//go:linkname LICENSE github.com/mickael-kerjean/filestash/server/pkg/env.LICENSE
|
||||
var LICENSE string
|
||||
|
||||
//go:linkname SECRET_KEY github.com/mickael-kerjean/filestash/server/pkg/env.SECRET_KEY
|
||||
var SECRET_KEY string
|
||||
|
||||
//go:linkname SECRET_KEY_DERIVATE_FOR_PROOF github.com/mickael-kerjean/filestash/server/pkg/env.SECRET_KEY_DERIVATE_FOR_PROOF
|
||||
var SECRET_KEY_DERIVATE_FOR_PROOF string
|
||||
|
||||
//go:linkname SECRET_KEY_DERIVATE_FOR_ADMIN github.com/mickael-kerjean/filestash/server/pkg/env.SECRET_KEY_DERIVATE_FOR_ADMIN
|
||||
var SECRET_KEY_DERIVATE_FOR_ADMIN string
|
||||
|
||||
//go:linkname SECRET_KEY_DERIVATE_FOR_USER github.com/mickael-kerjean/filestash/server/pkg/env.SECRET_KEY_DERIVATE_FOR_USER
|
||||
var SECRET_KEY_DERIVATE_FOR_USER string
|
||||
|
||||
//go:linkname SECRET_KEY_DERIVATE_FOR_HASH github.com/mickael-kerjean/filestash/server/pkg/env.SECRET_KEY_DERIVATE_FOR_HASH
|
||||
var SECRET_KEY_DERIVATE_FOR_HASH string
|
||||
|
||||
//go:linkname SECRET_KEY_DERIVATE_FOR_SIGNATURE github.com/mickael-kerjean/filestash/server/pkg/env.SECRET_KEY_DERIVATE_FOR_SIGNATURE
|
||||
var SECRET_KEY_DERIVATE_FOR_SIGNATURE string
|
||||
|
||||
var (
|
||||
WithBase = env.WithBase
|
||||
TrimBase = env.TrimBase
|
||||
IsWhiteLabel = env.IsWhiteLabel
|
||||
WhiteLabelText = env.WhiteLabelText
|
||||
)
|
||||
APP_VERSION = env.APP_VERSION
|
||||
BUILD_REF = env.BUILD_REF
|
||||
BUILD_DATE = env.BUILD_DATE
|
||||
LICENSE = env.LICENSE
|
||||
APPNAME = env.APPNAME
|
||||
|
||||
func init() {
|
||||
os.MkdirAll(GetAbsolutePath(CERT_PATH), os.ModePerm)
|
||||
os.MkdirAll(GetAbsolutePath(DB_PATH), os.ModePerm)
|
||||
os.MkdirAll(GetAbsolutePath(FTS_PATH), os.ModePerm)
|
||||
os.MkdirAll(GetAbsolutePath(LOG_PATH), os.ModePerm)
|
||||
os.MkdirAll(GetAbsolutePath(PLUGIN_PATH), os.ModePerm)
|
||||
os.RemoveAll(GetAbsolutePath(TMP_PATH))
|
||||
os.MkdirAll(GetAbsolutePath(TMP_PATH), os.ModePerm)
|
||||
}
|
||||
BASE = env.BASE
|
||||
URL_SETUP = env.URL_SETUP
|
||||
CONFIG_PATH = env.CONFIG_PATH
|
||||
CERT_PATH = env.CERT_PATH
|
||||
PLUGIN_PATH = env.PLUGIN_PATH
|
||||
DB_PATH = env.DB_PATH
|
||||
FTS_PATH = env.FTS_PATH
|
||||
LOG_PATH = env.LOG_PATH
|
||||
TMP_PATH = env.TMP_PATH
|
||||
COOKIE_NAME_PROOF = env.COOKIE_NAME_PROOF
|
||||
COOKIE_NAME_ADMIN = env.COOKIE_NAME_ADMIN
|
||||
COOKIE_PATH_ADMIN = env.COOKIE_PATH_ADMIN
|
||||
COOKIE_PATH = env.COOKIE_PATH
|
||||
)
|
||||
|
||||
+11
-4
@@ -1,11 +1,10 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
_ "unsafe"
|
||||
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/admin"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/config"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/core"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/kernel"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/mime"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/utils"
|
||||
@@ -169,6 +168,15 @@ var (
|
||||
TmplParams = kernel.TmplParams
|
||||
)
|
||||
|
||||
// env
|
||||
var (
|
||||
WithBase = env.WithBase
|
||||
TrimBase = env.TrimBase
|
||||
IsWhiteLabel = env.IsWhiteLabel
|
||||
WhiteLabelText = env.WhiteLabelText
|
||||
)
|
||||
|
||||
|
||||
// admin.go
|
||||
var NewAdminToken = admin.NewAdminToken
|
||||
|
||||
@@ -176,5 +184,4 @@ func InitLogger() error {
|
||||
return utils.InitLogger(GetAbsolutePath(LOG_PATH, "access.log"))
|
||||
}
|
||||
|
||||
//go:linkname Config github.com/mickael-kerjean/filestash/server/pkg/config.Config
|
||||
var Config config.Configuration
|
||||
var Config = config.Config
|
||||
|
||||
@@ -32,7 +32,6 @@ type ConfigElement struct {
|
||||
}
|
||||
|
||||
func InitConfig() error {
|
||||
Config = NewConfiguration()
|
||||
if err := Config.Load(); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -40,8 +39,8 @@ func InitConfig() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewConfiguration() Configuration {
|
||||
c := Configuration{}
|
||||
func NewConfiguration() *Configuration {
|
||||
c := &Configuration{}
|
||||
c.state.Store(&configState{
|
||||
conn: []map[string]any{},
|
||||
forms: []Form{
|
||||
@@ -202,8 +201,7 @@ func (this *Configuration) Initialise() {
|
||||
}
|
||||
if this.Get("general.secret_key").String() == "" {
|
||||
shouldSave = true
|
||||
key := RandomString(16)
|
||||
this.Get("general.secret_key").Set(key)
|
||||
this.Get("general.secret_key").Set(RandomString(16))
|
||||
}
|
||||
if shouldSave {
|
||||
this.Save()
|
||||
|
||||
@@ -30,15 +30,6 @@ var configKeysToEncrypt []string = []string{
|
||||
"middleware.attribute_mapping.params",
|
||||
}
|
||||
|
||||
func InitSecretDerivate(secret string) {
|
||||
SECRET_KEY = secret
|
||||
SECRET_KEY_DERIVATE_FOR_PROOF = Hash("PROOF_"+SECRET_KEY, len(SECRET_KEY))
|
||||
SECRET_KEY_DERIVATE_FOR_ADMIN = Hash("ADMIN_"+SECRET_KEY, len(SECRET_KEY))
|
||||
SECRET_KEY_DERIVATE_FOR_USER = Hash("USER_"+SECRET_KEY, len(SECRET_KEY))
|
||||
SECRET_KEY_DERIVATE_FOR_HASH = Hash("HASH_"+SECRET_KEY, len(SECRET_KEY))
|
||||
SECRET_KEY_DERIVATE_FOR_SIGNATURE = Hash("SGN_"+SECRET_KEY, len(SECRET_KEY))
|
||||
}
|
||||
|
||||
func LoadConfig() ([]byte, error) {
|
||||
file, err := os.OpenFile(GetAbsolutePath(CONFIG_PATH, "config.json"), os.O_RDONLY, os.ModePerm)
|
||||
if err != nil {
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
. "github.com/mickael-kerjean/filestash/server/pkg/utils"
|
||||
)
|
||||
|
||||
func InitSecretDerivate(secret string) {
|
||||
env.SECRET_KEY = secret
|
||||
env.SECRET_KEY_DERIVATE_FOR_PROOF = Hash("PROOF_"+env.SECRET_KEY, len(env.SECRET_KEY))
|
||||
env.SECRET_KEY_DERIVATE_FOR_ADMIN = Hash("ADMIN_"+env.SECRET_KEY, len(env.SECRET_KEY))
|
||||
env.SECRET_KEY_DERIVATE_FOR_USER = Hash("USER_"+env.SECRET_KEY, len(env.SECRET_KEY))
|
||||
env.SECRET_KEY_DERIVATE_FOR_HASH = Hash("HASH_"+env.SECRET_KEY, len(env.SECRET_KEY))
|
||||
env.SECRET_KEY_DERIVATE_FOR_SIGNATURE = Hash("SGN_"+env.SECRET_KEY, len(env.SECRET_KEY))
|
||||
}
|
||||
|
||||
func init() {
|
||||
os.MkdirAll(GetAbsolutePath(env.CERT_PATH), os.ModePerm)
|
||||
os.MkdirAll(GetAbsolutePath(env.DB_PATH), os.ModePerm)
|
||||
os.MkdirAll(GetAbsolutePath(env.FTS_PATH), os.ModePerm)
|
||||
os.MkdirAll(GetAbsolutePath(env.LOG_PATH), os.ModePerm)
|
||||
os.MkdirAll(GetAbsolutePath(env.PLUGIN_PATH), os.ModePerm)
|
||||
os.RemoveAll(GetAbsolutePath(env.TMP_PATH))
|
||||
os.MkdirAll(GetAbsolutePath(env.TMP_PATH), os.ModePerm)
|
||||
}
|
||||
Vendored
+21
-38
@@ -1,3 +1,4 @@
|
||||
//go:generate go run generator.go
|
||||
package env
|
||||
|
||||
import (
|
||||
@@ -6,14 +7,25 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
//go:generate go run generator.go
|
||||
var (
|
||||
APP_VERSION string = "v0.6"
|
||||
APPNAME string = "Filestash"
|
||||
BASE string
|
||||
BUILD_REF string
|
||||
BUILD_DATE string
|
||||
LICENSE string = "agpl"
|
||||
APP_VERSION = "v0.6"
|
||||
APPNAME = "Filestash"
|
||||
BASE = strings.TrimSuffix(os.Getenv("FILESTASH_BASE"), "/")
|
||||
LICENSE = "agpl"
|
||||
|
||||
CONFIG_PATH = fromPath("state/config/")
|
||||
CERT_PATH = fromPath("state/certs/")
|
||||
PLUGIN_PATH = fromPath("state/plugins/")
|
||||
DB_PATH = fromPath("state/db/")
|
||||
FTS_PATH = fromPath("state/search/")
|
||||
LOG_PATH = fromPath("state/log/")
|
||||
TMP_PATH = fromPath("cache/")
|
||||
|
||||
COOKIE_NAME_PROOF = "proof"
|
||||
COOKIE_NAME_ADMIN = "admin"
|
||||
COOKIE_PATH_ADMIN = WithBase("/admin/api/")
|
||||
COOKIE_PATH = WithBase("/api/")
|
||||
URL_SETUP = WithBase("/admin/setup")
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -25,39 +37,10 @@ var (
|
||||
SECRET_KEY_DERIVATE_FOR_SIGNATURE string
|
||||
)
|
||||
|
||||
var (
|
||||
CONFIG_PATH = "state/config/"
|
||||
CERT_PATH = "state/certs/"
|
||||
PLUGIN_PATH = "state/plugins/"
|
||||
DB_PATH = "state/db/"
|
||||
FTS_PATH = "state/search/"
|
||||
LOG_PATH = "state/log/"
|
||||
TMP_PATH = "cache/"
|
||||
)
|
||||
|
||||
var (
|
||||
COOKIE_NAME_PROOF = "proof"
|
||||
COOKIE_NAME_ADMIN = "admin"
|
||||
COOKIE_PATH_ADMIN = "/admin/api/"
|
||||
COOKIE_PATH = "/api/"
|
||||
URL_SETUP = "/admin/setup"
|
||||
)
|
||||
|
||||
func init() {
|
||||
// STEP1: setup app
|
||||
func fromPath(p string) string {
|
||||
rootPath := "data/"
|
||||
if p := os.Getenv("FILESTASH_PATH"); p != "" {
|
||||
rootPath = p
|
||||
}
|
||||
LOG_PATH = filepath.Join(rootPath, LOG_PATH)
|
||||
CONFIG_PATH = filepath.Join(rootPath, CONFIG_PATH)
|
||||
DB_PATH = filepath.Join(rootPath, DB_PATH)
|
||||
FTS_PATH = filepath.Join(rootPath, FTS_PATH)
|
||||
CERT_PATH = filepath.Join(rootPath, CERT_PATH)
|
||||
TMP_PATH = filepath.Join(rootPath, TMP_PATH)
|
||||
PLUGIN_PATH = filepath.Join(rootPath, PLUGIN_PATH)
|
||||
BASE = strings.TrimSuffix(os.Getenv("FILESTASH_BASE"), "/")
|
||||
COOKIE_PATH_ADMIN = WithBase(COOKIE_PATH_ADMIN)
|
||||
COOKIE_PATH = WithBase(COOKIE_PATH)
|
||||
URL_SETUP = WithBase(URL_SETUP)
|
||||
return filepath.Join(rootPath, p)
|
||||
}
|
||||
|
||||
Vendored
+3
-4
@@ -21,13 +21,12 @@ func main() {
|
||||
os.Exit(1)
|
||||
return
|
||||
}
|
||||
defer f.Close()
|
||||
f.Write([]byte(fmt.Sprintf(`
|
||||
package env
|
||||
|
||||
func init() {
|
||||
var (
|
||||
BUILD_REF = "%s"
|
||||
BUILD_DATE = "%s"
|
||||
}
|
||||
`, strings.TrimSpace(b.String()), time.Now().Format("20060102"))))
|
||||
f.Close()
|
||||
)`, strings.TrimSpace(b.String()), time.Now().Format("20060102"))))
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
"github.com/mickael-kerjean/filestash/server/model"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/share"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/token"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
@@ -112,7 +113,7 @@ func _extractShare(req *http.Request) (Share, error) {
|
||||
if len(usr) != 3 {
|
||||
return "", p
|
||||
}
|
||||
if Hash(usr[1]+SECRET_KEY_DERIVATE_FOR_HASH, 10) != usr[2] {
|
||||
if Hash(usr[1]+env.SECRET_KEY_DERIVATE_FOR_HASH, 10) != usr[2] {
|
||||
return "", p
|
||||
}
|
||||
return usr[1], p
|
||||
@@ -140,7 +141,7 @@ func _extractSession(req *http.Request, ctx *App) (map[string]string, error) {
|
||||
session map[string]string = make(map[string]string)
|
||||
)
|
||||
if ctx.Share.Id != "" {
|
||||
str, err = DecryptString(SECRET_KEY_DERIVATE_FOR_USER, ctx.Share.Auth)
|
||||
str, err = DecryptString(env.SECRET_KEY_DERIVATE_FOR_USER, ctx.Share.Auth)
|
||||
if err != nil {
|
||||
// This typically happen when changing the secret key
|
||||
return session, ErrNotAuthorized
|
||||
@@ -152,7 +153,7 @@ func _extractSession(req *http.Request, ctx *App) (map[string]string, error) {
|
||||
if ctx.Authorization == "" {
|
||||
return session, nil
|
||||
}
|
||||
str, err = DecryptString(SECRET_KEY_DERIVATE_FOR_USER, ctx.Authorization)
|
||||
str, err = DecryptString(env.SECRET_KEY_DERIVATE_FOR_USER, ctx.Authorization)
|
||||
if err != nil {
|
||||
// This typically happen when changing the secret key
|
||||
Log.Debug("middleware::session decrypt error '%s'", err.Error())
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
"encoding/json"
|
||||
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
)
|
||||
|
||||
func FromRequest(req *http.Request, ctx *App) (map[string]string, error) {
|
||||
@@ -16,7 +17,7 @@ func FromRequest(req *http.Request, ctx *App) (map[string]string, error) {
|
||||
)
|
||||
|
||||
if ctx.Share.Id != "" {
|
||||
str, err = DecryptString(SECRET_KEY_DERIVATE_FOR_USER, ctx.Share.Auth)
|
||||
str, err = DecryptString(env.SECRET_KEY_DERIVATE_FOR_USER, ctx.Share.Auth)
|
||||
if err != nil {
|
||||
// This typically happen when changing the secret key
|
||||
return session, ErrNotAuthorized
|
||||
@@ -29,7 +30,7 @@ func FromRequest(req *http.Request, ctx *App) (map[string]string, error) {
|
||||
if ctx.Authorization == "" {
|
||||
return session, nil
|
||||
}
|
||||
str, err = DecryptString(SECRET_KEY_DERIVATE_FOR_USER, ctx.Authorization)
|
||||
str, err = DecryptString(env.SECRET_KEY_DERIVATE_FOR_USER, ctx.Authorization)
|
||||
if err != nil {
|
||||
// This typically happen when changing the secret key
|
||||
Log.Debug("middleware::session decrypt error '%s'", err.Error())
|
||||
|
||||
@@ -15,6 +15,7 @@ import (
|
||||
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/cookie"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/files"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/token"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
@@ -95,7 +96,7 @@ func SessionAuthenticate(ctx *App, res http.ResponseWriter, req *http.Request) {
|
||||
SendErrorResult(res, NewError(err.Error(), 500))
|
||||
return
|
||||
}
|
||||
obfuscate, err := EncryptString(SECRET_KEY_DERIVATE_FOR_USER, string(s))
|
||||
obfuscate, err := EncryptString(env.SECRET_KEY_DERIVATE_FOR_USER, string(s))
|
||||
if err != nil {
|
||||
Log.Debug("[auth] action=authenticate::encrypt err=%s", ferror(err))
|
||||
SendErrorResult(res, NewError(err.Error(), 500))
|
||||
@@ -342,9 +343,9 @@ func SessionAuthMiddleware(ctx *App, res http.ResponseWriter, req *http.Request)
|
||||
}
|
||||
}
|
||||
if attributes = strings.TrimSpace(attributes); attributes != "" {
|
||||
v, err := DecryptString(SECRET_KEY_DERIVATE_FOR_SIGNATURE, signature)
|
||||
v, err := DecryptString(env.SECRET_KEY_DERIVATE_FOR_SIGNATURE, signature)
|
||||
if err != nil || attributes != v {
|
||||
v, _ = EncryptString(SECRET_KEY_DERIVATE_FOR_SIGNATURE, attributes)
|
||||
v, _ = EncryptString(env.SECRET_KEY_DERIVATE_FOR_SIGNATURE, attributes)
|
||||
Log.Debug("callback signature is required, signature=%s", v)
|
||||
http.Redirect(
|
||||
res, req,
|
||||
@@ -426,7 +427,7 @@ func SessionAuthMiddleware(ctx *App, res http.ResponseWriter, req *http.Request)
|
||||
SendErrorResult(res, ErrNotValid)
|
||||
return
|
||||
}
|
||||
obfuscate, err := EncryptString(SECRET_KEY_DERIVATE_FOR_USER, string(s))
|
||||
obfuscate, err := EncryptString(env.SECRET_KEY_DERIVATE_FOR_USER, string(s))
|
||||
if err != nil {
|
||||
Log.Debug("session::authMiddleware 'encryption error - %s", err.Error())
|
||||
SendErrorResult(res, ErrNotValid)
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
"regexp"
|
||||
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
@@ -48,7 +49,7 @@ func FromRequest(req *http.Request) (Share, error) {
|
||||
if len(usr) != 3 {
|
||||
return "", p
|
||||
}
|
||||
if Hash(usr[1]+SECRET_KEY_DERIVATE_FOR_HASH, 10) != usr[2] {
|
||||
if Hash(usr[1]+env.SECRET_KEY_DERIVATE_FOR_HASH, 10) != usr[2] {
|
||||
return "", p
|
||||
}
|
||||
return usr[1], p
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/token"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
@@ -121,7 +122,7 @@ func ShareVerifyProofHandler(ctx *App, res http.ResponseWriter, req *http.Reques
|
||||
// 2) validate the current context
|
||||
if len(verifiedProof) > 20 || len(requiredProof) > 20 {
|
||||
http.SetCookie(res, &http.Cookie{
|
||||
Name: COOKIE_NAME_PROOF,
|
||||
Name: env.COOKIE_NAME_PROOF,
|
||||
Value: "",
|
||||
MaxAge: -1,
|
||||
Path: COOKIE_PATH,
|
||||
@@ -173,7 +174,7 @@ func ShareVerifyProofHandler(ctx *App, res http.ResponseWriter, req *http.Reques
|
||||
Name: COOKIE_NAME_PROOF,
|
||||
Value: func(p []Proof) string {
|
||||
j, _ := json.Marshal(p)
|
||||
str, _ := EncryptString(SECRET_KEY_DERIVATE_FOR_PROOF, string(j))
|
||||
str, _ := EncryptString(env.SECRET_KEY_DERIVATE_FOR_PROOF, string(j))
|
||||
return str
|
||||
}(verifiedProof),
|
||||
Path: COOKIE_PATH,
|
||||
|
||||
@@ -15,6 +15,7 @@ import (
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/sqlite"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/utils"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
"gopkg.in/gomail.v2"
|
||||
@@ -192,7 +193,7 @@ func Verify(s Share, proof Proof) (Proof, error) {
|
||||
Username string
|
||||
}{
|
||||
code,
|
||||
user + "[" + Hash(user+SECRET_KEY_DERIVATE_FOR_HASH, 10) + "]",
|
||||
user + "[" + Hash(user+env.SECRET_KEY_DERIVATE_FOR_HASH, 10) + "]",
|
||||
})
|
||||
|
||||
p.Key = "code"
|
||||
@@ -294,7 +295,7 @@ func Verified(req *http.Request) []Proof {
|
||||
var p []Proof
|
||||
var cookieValue string
|
||||
|
||||
c, _ := req.Cookie(COOKIE_NAME_PROOF)
|
||||
c, _ := req.Cookie(env.COOKIE_NAME_PROOF)
|
||||
if c == nil {
|
||||
return p
|
||||
}
|
||||
@@ -302,7 +303,7 @@ func Verified(req *http.Request) []Proof {
|
||||
if len(cookieValue) > 500 {
|
||||
return p
|
||||
}
|
||||
j, err := DecryptString(SECRET_KEY_DERIVATE_FOR_PROOF, cookieValue)
|
||||
j, err := DecryptString(env.SECRET_KEY_DERIVATE_FOR_PROOF, cookieValue)
|
||||
if err != nil {
|
||||
return p
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
"github.com/mickael-kerjean/filestash/server/model"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
. "github.com/mickael-kerjean/filestash/server/pkg/workflow/model"
|
||||
)
|
||||
|
||||
@@ -108,7 +109,7 @@ func filewatchCallback(workflow Workflow) (map[string]string, bool) {
|
||||
|
||||
func createBackend(token string) (IBackend, map[string]string, error) {
|
||||
session := map[string]string{}
|
||||
str, err := DecryptString(SECRET_KEY_DERIVATE_FOR_USER, token)
|
||||
str, err := DecryptString(env.SECRET_KEY_DERIVATE_FOR_USER, token)
|
||||
if err != nil {
|
||||
return nil, session, err
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
"text/template"
|
||||
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
|
||||
"github.com/pquerna/otp/totp"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
@@ -241,7 +242,7 @@ func withMFA(user User, session string) User {
|
||||
if session == "" {
|
||||
return user
|
||||
}
|
||||
data, err := DecryptString(SECRET_KEY_DERIVATE_FOR_USER, session)
|
||||
data, err := DecryptString(env.SECRET_KEY_DERIVATE_FOR_USER, session)
|
||||
if err != nil {
|
||||
return User{}
|
||||
}
|
||||
@@ -259,7 +260,7 @@ func (user User) EncryptedString() string {
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
d, err := EncryptString(SECRET_KEY_DERIVATE_FOR_USER, string(b))
|
||||
d, err := EncryptString(env.SECRET_KEY_DERIVATE_FOR_USER, string(b))
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
"time"
|
||||
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
"github.com/mickael-kerjean/filestash/server/model"
|
||||
. "github.com/mickael-kerjean/filestash/server/plugin/plg_handler_mcp/impl"
|
||||
. "github.com/mickael-kerjean/filestash/server/plugin/plg_handler_mcp/types"
|
||||
@@ -225,7 +226,7 @@ func (this *Server) sseHandler(_ *App, w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
func getBackend(token string) (IBackend, error) {
|
||||
str, err := DecryptString(SECRET_KEY_DERIVATE_FOR_USER, token)
|
||||
str, err := DecryptString(env.SECRET_KEY_DERIVATE_FOR_USER, token)
|
||||
if err != nil {
|
||||
return nil, ErrNotAuthorized
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"time"
|
||||
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/env"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -20,7 +21,7 @@ var KEY_FOR_CODE string
|
||||
|
||||
func init() {
|
||||
Hooks.Register.Onload(func() {
|
||||
KEY_FOR_CODE = Hash("MCP_CODE_"+SECRET_KEY, len(SECRET_KEY))
|
||||
KEY_FOR_CODE = Hash("MCP_CODE_"+env.SECRET_KEY, len(env.SECRET_KEY))
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user