diff --git a/service/internal/auth/sessions.go b/service/internal/auth/sessions.go index ccd0736..a78fcd3 100644 --- a/service/internal/auth/sessions.go +++ b/service/internal/auth/sessions.go @@ -85,29 +85,21 @@ func LoadUserSessions(cfg *config.Config) { sessionStorageMutex.Lock() defer sessionStorageMutex.Unlock() - data, err := os.ReadFile(cfg.GetDir() + "/sessions.yaml") - if err != nil { - logrus.WithError(err).Warn("Failed to read sessions.yaml file") - // Initialize empty session storage if file doesn't exist - if sessionStorage == nil { - sessionStorage = &SessionStorage{ - Providers: make(map[string]*SessionProvider), - } - } - return - } + data, err := os.ReadFile(cfg.GetDir() + "/sessions.yaml") + if err != nil { + logrus.WithError(err).Warn("Failed to read sessions.yaml file") + // Always reset in-memory sessions on load error + sessionStorage = &SessionStorage{Providers: make(map[string]*SessionProvider)} + return + } - err = yaml.Unmarshal(data, &sessionStorage) - if err != nil { - logrus.WithError(err).Error("Failed to unmarshal sessions.yaml") - // Initialize empty session storage if unmarshal fails - if sessionStorage == nil { - sessionStorage = &SessionStorage{ - Providers: make(map[string]*SessionProvider), - } - } - return - } + err = yaml.Unmarshal(data, &sessionStorage) + if err != nil { + logrus.WithError(err).Error("Failed to unmarshal sessions.yaml") + // Always reset in-memory sessions on parse error + sessionStorage = &SessionStorage{Providers: make(map[string]*SessionProvider)} + return + } // Ensure sessionStorage and Providers are properly initialized if sessionStorage == nil { diff --git a/service/internal/executor/executor.go b/service/internal/executor/executor.go index 6a7218a..7a72482 100644 --- a/service/internal/executor/executor.go +++ b/service/internal/executor/executor.go @@ -436,8 +436,6 @@ func stepParseArgs(req *ExecutionRequest) bool { req.Arguments["ot_executionTrackingId"] = req.TrackingID req.Arguments["ot_username"] = req.AuthenticatedUser.Username - mangleInvalidArgumentValues(req) - if req.Binding == nil || req.Binding.Action == nil { err = fmt.Errorf("cannot parse arguments: Binding or Action is nil") req.logEntry.Output = err.Error() @@ -445,6 +443,9 @@ func stepParseArgs(req *ExecutionRequest) bool { return false } + // Only mangle arguments when we have a valid binding/action + mangleInvalidArgumentValues(req) + if len(req.Binding.Action.Exec) > 0 { req.useDirectExec = true req.execArgs, err = parseActionExec(req.Arguments, req.Binding.Action, req.Binding.Entity)