From 396f02265b10e0b693c8d76b456b8058b39a8344 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Thu, 19 Jan 2023 16:11:19 -0600 Subject: [PATCH] explicit errors if context isn't setup --- .../backend/core/actions/ActionHelper.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/ActionHelper.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/ActionHelper.java index 604a9c98..1e1ce8f0 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/ActionHelper.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/ActionHelper.java @@ -25,9 +25,12 @@ package com.kingsrook.qqq.backend.core.actions; import java.io.Serializable; import java.util.List; import java.util.function.Function; +import com.kingsrook.qqq.backend.core.context.QContext; import com.kingsrook.qqq.backend.core.exceptions.QAuthenticationException; import com.kingsrook.qqq.backend.core.exceptions.QException; import com.kingsrook.qqq.backend.core.model.actions.AbstractActionInput; +import com.kingsrook.qqq.backend.core.model.metadata.QInstance; +import com.kingsrook.qqq.backend.core.model.session.QSession; import com.kingsrook.qqq.backend.core.modules.authentication.QAuthenticationModuleDispatcher; import com.kingsrook.qqq.backend.core.modules.authentication.QAuthenticationModuleInterface; @@ -43,9 +46,22 @@ public class ActionHelper *******************************************************************************/ public static void validateSession(AbstractActionInput request) throws QException { + QInstance qInstance = QContext.getQInstance(); + QSession qSession = QContext.getQSession(); + + if(qInstance == null) + { + throw (new QException("QInstance was not set in QContext.")); + } + + if(qSession == null) + { + throw (new QException("QSession was not set in QContext.")); + } + QAuthenticationModuleDispatcher qAuthenticationModuleDispatcher = new QAuthenticationModuleDispatcher(); - QAuthenticationModuleInterface authenticationModule = qAuthenticationModuleDispatcher.getQModule(request.getAuthenticationMetaData()); - if(!authenticationModule.isSessionValid(request.getInstance(), request.getSession())) + QAuthenticationModuleInterface authenticationModule = qAuthenticationModuleDispatcher.getQModule(qInstance.getAuthentication()); + if(!authenticationModule.isSessionValid(qInstance, qSession)) { throw new QAuthenticationException("Invalid session in request"); }