package org.ovirt.engine.core.bll.adbroker; import org.ovirt.engine.core.common.businessentities.AdUser; public class InternalAuthenticateUserCommand extends InternalBrokerCommandBase { public InternalAuthenticateUserCommand(LdapUserPasswordBaseParameters parameters) { super(parameters); } public String getUPNForUser(String userName, String domain) { String UPN = userName; if (!userName.contains("@")) { UPN = userName + '@' + domain; } return UPN; } public String getUserNameForUPN(String UPN) { String userName = UPN; if (userName.contains("@")) { userName = userName.split("@")[0]; } return userName; } @Override protected void ExecuteQuery() { String userName = getParameters().getLoginName(); String password = getParameters().getPassword(); String domain = BrokerUtils.getLoginDomain(userName, getDomain()); String userUPN = getUPNForUser(userName, domain); userName = getUserNameForUPN(userUPN); UserAuthenticationResult result = InternalBrokerUtils.authenticate(userName, password, domain); setSucceeded(result.isSuccessful()); if (result.isSuccessful()) { AdUser user = InternalBrokerUtils.getUserByUPN(userUPN); UserAuthenticationResult authResult = new UserAuthenticationResult(user); setReturnValue(authResult); } else { setReturnValue(result); } } }