Yair Zaslavsky has uploaded a new change for review.

Change subject: core: Extracting session management outside of AdBroker package
......................................................................

core: Extracting session management outside of AdBroker package

a. For all LdapBroker commands that are not authenticate -
they should use the user associated with the domain -
no need to session management here (the user is kept at
UsersDomainsCacheManagerService)

b. For the AuthenticateUserCommand - the code is extracted to the bll
LoginBaseCommand

Change-Id: I82003f1b91847d3f75d99e2b02eb238ab050d62e
Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/LoginBaseCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapAuthenticateUserCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapBrokerCommandBase.java
3 files changed, 32 insertions(+), 29 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/25505/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/LoginBaseCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/LoginBaseCommand.java
index eee215a..5bd6b3c 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/LoginBaseCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/LoginBaseCommand.java
@@ -136,6 +136,21 @@
         }
         PasswordAuthenticator passwordAuthenticator = (PasswordAuthenticator) 
authenticator;
 
+        DbUser curUser = null;
+        String curPassword = null;
+        SessionDataContainer sessionDataContainer = 
SessionDataContainer.getInstance();
+        if (StringUtils.isEmpty(getParameters().getSessionId())) {
+            curUser = sessionDataContainer.getUser(false);
+            curPassword = sessionDataContainer.getPassword();
+        } else {
+            curUser = 
sessionDataContainer.getUser(getParameters().getSessionId(), false);
+            curPassword = 
sessionDataContainer.getPassword(getParameters().getSessionId());
+        }
+        // verify that in auto login mode , user is not taken from session.
+        if (curUser != null && !StringUtils.isEmpty(curPassword)) {
+            loginName = curUser.getLoginName();
+            password = curPassword;
+        }
         // Perform the actual authentication:
         AuthenticationResult result = 
passwordAuthenticator.authenticate(loginName, password);
         if (!result.isSuccessful()) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapAuthenticateUserCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapAuthenticateUserCommand.java
index d86bcfe..97272ea 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapAuthenticateUserCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapAuthenticateUserCommand.java
@@ -13,6 +13,10 @@
         super(parameters);
     }
 
+    protected void initCredentials(String domain) {
+
+    }
+
     @Override
     protected void executeQuery(DirectorySearcher directorySearcher) {
         log.debug("Executing LdapAuthenticateUserCommand");
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapBrokerCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapBrokerCommandBase.java
index 55d4e5e..15c95ec 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapBrokerCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapBrokerCommandBase.java
@@ -5,10 +5,7 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
-import org.ovirt.engine.core.bll.session.SessionDataContainer;
 import org.ovirt.engine.core.common.businessentities.DbGroup;
-import org.ovirt.engine.core.common.businessentities.DbUser;
 import org.ovirt.engine.core.common.businessentities.LdapGroup;
 import org.ovirt.engine.core.common.businessentities.LdapUser;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
@@ -35,32 +32,19 @@
     }
 
     protected void initCredentials(String domain) {
-        DbUser curUser;
-        String curPassword;
-        SessionDataContainer sessionDataContainer = 
SessionDataContainer.getInstance();
-        if (StringUtils.isEmpty(getParameters().getSessionId())) {
-            curUser = sessionDataContainer.getUser(false);
-            curPassword = sessionDataContainer.getPassword();
-        } else {
-            curUser = 
sessionDataContainer.getUser(getParameters().getSessionId(), false);
-            curPassword = 
sessionDataContainer.getPassword(getParameters().getSessionId());
-        }
-        // verify that in auto login mode , user is not taken from session.
-        if (curUser != null && !StringUtils.isEmpty(curPassword)) {
-            setLoginName(curUser.getLoginName());
-            setPassword(curPassword);
-            setAuthenticationDomain(curUser.getDomain());
-        } else {
-            Domain domainObject = 
UsersDomainsCacheManagerService.getInstance().getDomain(domain);
-            if (domainObject != null) {
-                setLoginName(domainObject.getUserName());
-                setPassword(domainObject.getPassword());
-                if (getLoginName().contains("@")) {
-                    String userDomain = 
getLoginName().split("@")[1].toLowerCase();
-                    setAuthenticationDomain(userDomain);
-                } else {
-                    setAuthenticationDomain(domain);
-                }
+        setUserDomainCredentials(domain);
+    }
+
+    protected void setUserDomainCredentials(String domain) {
+        Domain domainObject = 
UsersDomainsCacheManagerService.getInstance().getDomain(domain);
+        if (domainObject != null) {
+            setLoginName(domainObject.getUserName());
+            setPassword(domainObject.getPassword());
+            if (getLoginName().contains("@")) {
+                String userDomain = getLoginName().split("@")[1].toLowerCase();
+                setAuthenticationDomain(userDomain);
+            } else {
+                setAuthenticationDomain(domain);
             }
         }
     }


-- 
To view, visit http://gerrit.ovirt.org/25505
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I82003f1b91847d3f75d99e2b02eb238ab050d62e
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to