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