You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by su...@apache.org on 2020/06/07 05:26:06 UTC

[ofbiz-plugins] branch trunk updated: Improved: Enforce noninstantiability to LdapLoginWorker, OFBizSolrLoginWorker class. (#23)

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

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


The following commit(s) were added to refs/heads/trunk by this push:
     new 9c447f2  Improved: Enforce noninstantiability to LdapLoginWorker, OFBizSolrLoginWorker class. (#23)
9c447f2 is described below

commit 9c447f248699e5942bc3b4c2ce4cb94d088fdf95
Author: Suraj Khurana <64...@users.noreply.github.com>
AuthorDate: Sun Jun 7 10:55:56 2020 +0530

    Improved: Enforce noninstantiability to LdapLoginWorker, OFBizSolrLoginWorker class. (#23)
    
    (OFBIZ-11747)
    
    Made class as final, added private constructor and made static variables as private.
---
 .../org/apache/ofbiz/ldap/LdapLoginWorker.java     | 36 +++++++++++----------
 .../AbstractOFBizAuthenticationHandler.java        |  6 ++--
 .../ofbiz/solr/control/OFBizSolrLoginWorker.java   | 37 ++++++++++------------
 3 files changed, 39 insertions(+), 40 deletions(-)

diff --git a/ldap/src/main/java/org/apache/ofbiz/ldap/LdapLoginWorker.java b/ldap/src/main/java/org/apache/ofbiz/ldap/LdapLoginWorker.java
index 7c3dce4..6e1bdb4 100644
--- a/ldap/src/main/java/org/apache/ofbiz/ldap/LdapLoginWorker.java
+++ b/ldap/src/main/java/org/apache/ofbiz/ldap/LdapLoginWorker.java
@@ -44,9 +44,13 @@ import org.xml.sax.SAXException;
 /**
  * Common LDAP Login Workers
  */
-public class LdapLoginWorker extends LoginWorker {
+public final class LdapLoginWorker {
 
-    private static final String ldapConfig = "plugins/ldap/config/ldap.xml";
+    private final static String MODULE = LdapLoginWorker.class.getName();
+    private static final String RESOURCE = "SecurityextUiLabels";
+    private static final String LDAP_CONFIG = "plugins/ldap/config/ldap.xml";
+
+    protected LdapLoginWorker() { }
 
     /**
      * An HTTP WebEvent handler that checks to see is a userLogin is logged in.
@@ -77,14 +81,14 @@ public class LdapLoginWorker extends LoginWorker {
                 } catch (Exception e) {
                     Debug.logError(e, "Error calling checkLogin service", MODULE);
                     Map<String, String> messageMap = UtilMisc.toMap("errorMessage", e.getMessage());
-                    String errMsg = UtilProperties.getMessage(resourceWebapp, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
+                    String errMsg = UtilProperties.getMessage(RESOURCE, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
                     request.setAttribute("_ERROR_MESSAGE_", errMsg);
                 }
             }
 
-            if (!hasBasePermission(userLogin, request) || isFlaggedLoggedOut(userLogin, userLogin.getDelegator()) || hasLdapLoggedOut) {
+            if (!LoginWorker.hasBasePermission(userLogin, request) || LoginWorker.isFlaggedLoggedOut(userLogin, userLogin.getDelegator()) || hasLdapLoggedOut) {
                 Debug.logInfo("User does not have permission or is flagged as logged out", MODULE);
-                doBasicLogout(userLogin, request, response);
+                LoginWorker.doBasicLogout(userLogin, request, response);
                 userLogin = null;
             }
         }
@@ -117,7 +121,7 @@ public class LdapLoginWorker extends LoginWorker {
             } catch (Exception e) {
                 Debug.logError(e, "Error calling userLogin service", MODULE);
                 Map<String, String> messageMap = UtilMisc.toMap("errorMessage", e.getMessage());
-                String errMsg = UtilProperties.getMessage(resourceWebapp, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
+                String errMsg = UtilProperties.getMessage(RESOURCE, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
                 request.setAttribute("_ERROR_MESSAGE_", errMsg);
             }
         }
@@ -147,7 +151,7 @@ public class LdapLoginWorker extends LoginWorker {
         // invalidate the security group list cache
         GenericValue userLogin = (GenericValue) request.getSession().getAttribute("userLogin");
 
-        doBasicLogout(userLogin, request, response);
+        LoginWorker.doBasicLogout(userLogin, request, response);
 
         Element rootElement = getRootElement(request);
 
@@ -161,47 +165,47 @@ public class LdapLoginWorker extends LoginWorker {
             } catch (Exception e) {
                 Debug.logError(e, "Error calling userLogin service", MODULE);
                 Map<String, String> messageMap = UtilMisc.toMap("errorMessage", e.getMessage());
-                String errMsg = UtilProperties.getMessage(resourceWebapp, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
+                String errMsg = UtilProperties.getMessage(RESOURCE, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
                 request.setAttribute("_ERROR_MESSAGE_", errMsg);
             }
         }
 
         if (request.getAttribute("_AUTO_LOGIN_LOGOUT_") == null) {
-            return autoLoginCheck(request, response);
+            return LoginWorker.autoLoginCheck(request, response);
         }
         return result;
     }
 
     protected static Element getRootElement(HttpServletRequest request) {
         if (Debug.infoOn()) {
-            Debug.logInfo("LDAP config file: " + ldapConfig, MODULE);
+            Debug.logInfo("LDAP config file: " + LDAP_CONFIG, MODULE);
         }
-        File configFile = new File(ldapConfig);
+        File configFile = new File(LDAP_CONFIG);
         FileInputStream configFileIS = null;
         Element rootElement = null;
         try {
             configFileIS = new FileInputStream(configFile);
-            Document configDoc = UtilXml.readXmlDocument(configFileIS, "LDAP configuration file " + ldapConfig);
+            Document configDoc = UtilXml.readXmlDocument(configFileIS, "LDAP configuration file " + LDAP_CONFIG);
             rootElement = configDoc.getDocumentElement();
         } catch (FileNotFoundException e) {
             Debug.logError(e, "Error calling userLogin service", MODULE);
             Map<String, String> messageMap = UtilMisc.toMap("errorMessage", e.getMessage());
-            String errMsg = UtilProperties.getMessage(resourceWebapp, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
+            String errMsg = UtilProperties.getMessage(RESOURCE, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
             request.setAttribute("_ERROR_MESSAGE_", errMsg);
         } catch (SAXException e) {
             Debug.logError(e, "Error calling userLogin service", MODULE);
             Map<String, String> messageMap = UtilMisc.toMap("errorMessage", e.getMessage());
-            String errMsg = UtilProperties.getMessage(resourceWebapp, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
+            String errMsg = UtilProperties.getMessage(RESOURCE, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
             request.setAttribute("_ERROR_MESSAGE_", errMsg);
         } catch (ParserConfigurationException e) {
             Debug.logError(e, "Error calling userLogin service", MODULE);
             Map<String, String> messageMap = UtilMisc.toMap("errorMessage", e.getMessage());
-            String errMsg = UtilProperties.getMessage(resourceWebapp, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
+            String errMsg = UtilProperties.getMessage(RESOURCE, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
             request.setAttribute("_ERROR_MESSAGE_", errMsg);
         } catch (IOException e) {
             Debug.logError(e, "Error calling userLogin service", MODULE);
             Map<String, String> messageMap = UtilMisc.toMap("errorMessage", e.getMessage());
-            String errMsg = UtilProperties.getMessage(resourceWebapp, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
+            String errMsg = UtilProperties.getMessage(RESOURCE, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
             request.setAttribute("_ERROR_MESSAGE_", errMsg);
         } finally {
             if (configFileIS != null) {
diff --git a/ldap/src/main/java/org/apache/ofbiz/ldap/commons/AbstractOFBizAuthenticationHandler.java b/ldap/src/main/java/org/apache/ofbiz/ldap/commons/AbstractOFBizAuthenticationHandler.java
index c207f87..cf287ea 100644
--- a/ldap/src/main/java/org/apache/ofbiz/ldap/commons/AbstractOFBizAuthenticationHandler.java
+++ b/ldap/src/main/java/org/apache/ofbiz/ldap/commons/AbstractOFBizAuthenticationHandler.java
@@ -41,7 +41,7 @@ import org.apache.ofbiz.entity.GenericEntityException;
 import org.apache.ofbiz.entity.GenericValue;
 import org.apache.ofbiz.entity.util.EntityQuery;
 import org.apache.ofbiz.entity.util.EntityUtilProperties;
-import org.apache.ofbiz.ldap.LdapLoginWorker;
+import org.apache.ofbiz.webapp.control.LoginWorker;
 import org.apache.ofbiz.service.GenericServiceException;
 import org.apache.ofbiz.service.LocalDispatcher;
 import org.apache.ofbiz.service.ModelService;
@@ -145,10 +145,10 @@ public abstract class AbstractOFBizAuthenticationHandler implements InterfaceOFB
         if (ModelService.RESPOND_SUCCESS.equals(loginResult.get(ModelService.RESPONSE_MESSAGE))) {
             GenericValue userLogin = (GenericValue) loginResult.get("userLogin");
             Map<String, Object> userLoginSession = checkMap(loginResult.get("userLoginSession"), String.class, Object.class);
-            return LdapLoginWorker.doMainLogin(request, response, userLogin, userLoginSession);
+            return LoginWorker.doMainLogin(request, response, userLogin, userLoginSession);
         } else {
             Map<String, String> messageMap = UtilMisc.toMap("errorMessage", (String) loginResult.get(ModelService.ERROR_MESSAGE));
-            String errMsg = UtilProperties.getMessage(LdapLoginWorker.resourceWebapp, "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
+            String errMsg = UtilProperties.getMessage("SecurityextUiLabels", "loginevents.following_error_occurred_during_login", messageMap, UtilHttp.getLocale(request));
             throw new Exception(errMsg);
         }
     }
diff --git a/solr/src/main/java/org/apache/ofbiz/solr/control/OFBizSolrLoginWorker.java b/solr/src/main/java/org/apache/ofbiz/solr/control/OFBizSolrLoginWorker.java
index 1dd08fd..dcc278b 100644
--- a/solr/src/main/java/org/apache/ofbiz/solr/control/OFBizSolrLoginWorker.java
+++ b/solr/src/main/java/org/apache/ofbiz/solr/control/OFBizSolrLoginWorker.java
@@ -27,9 +27,10 @@ import org.apache.ofbiz.webapp.control.LoginWorker;
 /**
  * OFBiz Solr Login Workers
  */
-public class OFBizSolrLoginWorker extends LoginWorker {
+public final class OFBizSolrLoginWorker{
 
-    public final static String MODULE = OFBizSolrLoginWorker.class.getName();
+    private final static String MODULE = OFBizSolrLoginWorker.class.getName();
+    protected OFBizSolrLoginWorker() { }
 
     /**
      * An HTTP WebEvent handler that logs in a userLogin. This should run before the security check.
@@ -42,32 +43,26 @@ public class OFBizSolrLoginWorker extends LoginWorker {
     public static String login(HttpServletRequest request, HttpServletResponse response) {
         String result = LoginWorker.login(request, response);
         if ("success".equals(result)) {
-            // send the redirect
-            try {            
-                response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
-                response.setHeader("Location", request.getContextPath());
-                response.setHeader("Connection", "close");
-            } catch (IllegalStateException ise) {
-                Debug.logError(ise.getMessage(), MODULE);
-                return "error";
-            }
+            result = setResponse(request, response);
         }
         return result;
     }
-
     public static String extensionCheckLogin(HttpServletRequest request, HttpServletResponse response) {
         String result = LoginWorker.extensionCheckLogin(request, response);
         if ("success".equals(result)) {
-            // send the redirect
-            try {            
-                response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
-                response.setHeader("Location", request.getContextPath());
-                response.setHeader("Connection", "close");
-            } catch (IllegalStateException ise) {
-                Debug.logError(ise.getMessage(), MODULE);
-                return "error";
-            }
+            result = setResponse(request, response);
         }
         return result;
     }
+    private static String setResponse(HttpServletRequest request, HttpServletResponse response) {
+        try {
+            response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
+            response.setHeader("Location", request.getContextPath());
+            response.setHeader("Connection", "close");
+        } catch (IllegalStateException ise) {
+            Debug.logError(ise.getMessage(), MODULE);
+            return "error";
+        }
+        return "success";
+    }
 }