This is an automated email from the ASF dual-hosted git repository.

mbrohl pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
     new b1cd87b415 Improved: Configure of after-login Events in BasicLogin. 
(OFBIZ-12630)
b1cd87b415 is described below

commit b1cd87b415a2110c021574f62acf545d68aa669f
Author: Georg <georg.b...@ecomify.de>
AuthorDate: Fri Jul 29 14:59:10 2022 +0200

    Improved: Configure of after-login Events in BasicLogin. (OFBIZ-12630)
---
 framework/security/config/security.properties          |  2 ++
 .../ofbiz/webapp/control/ExternalLoginKeysManager.java |  2 +-
 .../org/apache/ofbiz/webapp/control/JWTManager.java    |  2 +-
 .../org/apache/ofbiz/webapp/control/LoginWorker.java   | 18 ++++++++++++------
 4 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/framework/security/config/security.properties 
b/framework/security/config/security.properties
index 80e098090e..b7acb53346 100644
--- a/framework/security/config/security.properties
+++ b/framework/security/config/security.properties
@@ -291,3 +291,5 @@ allowedProtocols=localhost,127.0.0.1
 #-- eg: 
allowedURIsForFreemarkerInterpolation=createTextContentCms,updateTextContentCms,...
 allowedURIsForFreemarkerInterpolation=
 
+#-- Configure if after-login events are run in doMainLogin (default) or in do 
BasicLogin
+security.login.loginEventsAfterBasicLogin=N
diff --git 
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ExternalLoginKeysManager.java
 
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ExternalLoginKeysManager.java
index 867954304e..0abeaeca45 100644
--- 
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ExternalLoginKeysManager.java
+++ 
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ExternalLoginKeysManager.java
@@ -144,7 +144,7 @@ public class ExternalLoginKeysManager {
             request.getSession().setAttribute("userLogin", userLogin);
             userLogin = LoginWorker.checkLogout(request, response);
 
-            LoginWorker.doBasicLogin(userLogin, request);
+            LoginWorker.doBasicLogin(userLogin, request, response);
 
             // Create a secured cookie with the correct userLoginId
             LoginWorker.createSecuredLoginIdCookie(request, response);
diff --git 
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/JWTManager.java
 
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/JWTManager.java
index d8f06822fb..6b9f17e2ab 100644
--- 
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/JWTManager.java
+++ 
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/JWTManager.java
@@ -120,7 +120,7 @@ public class JWTManager {
             return "success";
         }
 
-        LoginWorker.doBasicLogin(userLogin, request);
+        LoginWorker.doBasicLogin(userLogin, request, response);
         return "success";
     }
 
diff --git 
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
 
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
index 56eca9c5cc..5af41248a2 100644
--- 
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
+++ 
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
@@ -804,7 +804,7 @@ public final class LoginWorker {
             return "error";
         }
         if (userLogin != null && hasBasePermission(userLogin, request)) {
-            doBasicLogin(userLogin, request);
+            doBasicLogin(userLogin, request, response);
         } else {
             String errMsg = UtilProperties.getMessage(RESOURCE, 
"loginevents.unable_to_login_this_application", UtilHttp.getLocale(request));
             request.setAttribute("_ERROR_MESSAGE_", errMsg);
@@ -817,10 +817,11 @@ public final class LoginWorker {
 
         request.setAttribute("_LOGIN_PASSED_", "TRUE");
 
-        // run the after-login events
-        RequestHandler rh = 
RequestHandler.getRequestHandler(request.getSession().getServletContext());
-        rh.runAfterLoginEvents(request, response);
-
+        if (!"Y".equals(UtilProperties.getPropertyValue(SEC_PROPERTIES, 
"security.login.loginEventsAfterBasicLogin", "N"))) {
+            // run the after-login events
+            RequestHandler rh = 
RequestHandler.getRequestHandler(request.getSession().getServletContext());
+            rh.runAfterLoginEvents(request, response);
+        }
         // Create a secured cookie with the correct userLoginId
         createSecuredLoginIdCookie(request, response);
 
@@ -830,7 +831,7 @@ public final class LoginWorker {
         return autoLoginCheck(request, response);
     }
 
-    public static void doBasicLogin(GenericValue userLogin, HttpServletRequest 
request) {
+    public static void doBasicLogin(GenericValue userLogin, HttpServletRequest 
request, HttpServletResponse response) {
         HttpSession session = request.getSession();
         session.setAttribute("userLogin", userLogin);
 
@@ -930,6 +931,11 @@ public final class LoginWorker {
                 Debug.logError(e, MODULE);
             }
         }
+        if ("Y".equals(UtilProperties.getPropertyValue(SEC_PROPERTIES, 
"security.login.loginEventsAfterBasicLogin", "N"))) {
+            // run the after-login events
+            RequestHandler rh = 
RequestHandler.getRequestHandler(request.getSession().getServletContext());
+            rh.runAfterLoginEvents(request, response);
+        }
 
         // setup some things that should always be there
         UtilHttp.setInitialRequestInfo(request);

Reply via email to