/* * Copyright 2009, OpenIAM LLC * This file is part of the OpenIAM Identity and Access Management Suite * * OpenIAM Identity and Access Management Suite is free software: * you can redistribute it and/or modify * it under the terms of the GNU General Public License * version 3 as published by the Free Software Foundation. * * OpenIAM is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * Lesser GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenIAM. If not, see <http://www.gnu.org/licenses/>. * */ /** * */ package org.openiam.provision.service; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.mule.api.MuleContext; import org.mule.api.context.MuleContextAware; import org.mule.module.client.MuleClient; import org.openiam.base.AttributeOperationEnum; import org.openiam.base.BaseObject; import org.openiam.base.SysConfiguration; import org.openiam.base.id.UUIDGen; import org.openiam.base.ws.Response; import org.openiam.base.ws.ResponseCode; import org.openiam.base.ws.ResponseStatus; import org.openiam.connector.type.*; import org.openiam.exception.EncryptionException; import org.openiam.exception.ObjectNotFoundException; import org.openiam.idm.srvc.audit.dto.IdmAuditLog; import org.openiam.idm.srvc.audit.service.AuditHelper; import org.openiam.idm.srvc.audit.service.IdmAuditLogDataService; import org.openiam.idm.srvc.auth.dto.Login; import org.openiam.idm.srvc.auth.dto.LoginId; import org.openiam.idm.srvc.auth.login.LoginDAO; import org.openiam.idm.srvc.auth.login.LoginDataService; import org.openiam.idm.srvc.grp.dto.Group; import org.openiam.idm.srvc.grp.service.GroupDataService; import org.openiam.idm.srvc.mngsys.dto.AttributeMap; import org.openiam.idm.srvc.mngsys.dto.ManagedSys; import org.openiam.idm.srvc.mngsys.dto.ManagedSystemObjectMatch; import org.openiam.idm.srvc.mngsys.dto.ProvisionConnector; import org.openiam.idm.srvc.mngsys.service.ConnectorDataService; import org.openiam.idm.srvc.mngsys.service.ManagedSystemDataService; import org.openiam.idm.srvc.org.dto.Organization; import org.openiam.idm.srvc.org.service.OrganizationDataService; import org.openiam.idm.srvc.policy.dto.Policy; import org.openiam.idm.srvc.policy.dto.PolicyAttribute; import org.openiam.idm.srvc.pswd.dto.Password; import org.openiam.idm.srvc.pswd.dto.PasswordValidationCode; import org.openiam.idm.srvc.pswd.service.PasswordGenerator; import org.openiam.idm.srvc.pswd.service.PasswordService; import org.openiam.idm.srvc.res.dto.Resource; import org.openiam.idm.srvc.res.dto.ResourceProp; import org.openiam.idm.srvc.res.service.ResourceDataService; import org.openiam.idm.srvc.role.dto.Role; import org.openiam.idm.srvc.role.service.RoleDataService; import org.openiam.idm.srvc.synch.dto.SynchConfig; import org.openiam.idm.srvc.user.dto.User; import org.openiam.idm.srvc.user.dto.UserStatusEnum; import org.openiam.idm.srvc.user.service.UserDataService; import org.openiam.provision.dto.AccountLockEnum; import org.openiam.provision.dto.PasswordSync; import org.openiam.provision.dto.ProvisionGroup; import org.openiam.provision.dto.ProvisionUser; import org.openiam.provision.resp.LookupUserResponse; import org.openiam.provision.resp.PasswordResponse; import org.openiam.provision.resp.ProvisionUserResponse; import org.openiam.provision.type.ExtensibleAttribute; import org.openiam.provision.type.ExtensibleObject; import org.openiam.provision.type.ExtensibleUser; import org.openiam.script.ScriptFactory; import org.openiam.script.ScriptIntegration; import org.openiam.spml2.msg.*; import org.openiam.spml2.msg.ResponseType; import org.openiam.spml2.msg.password.SetPasswordRequestType; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import javax.jws.WebMethod; import javax.jws.WebService; import java.util.*; /** * @author suneet */ @WebService(endpointInterface = "org.openiam.provision.service.AsynchUserProvisionService", targetNamespace = "http://www.openiam.org/service/provision", portName = "DefaultProvisionControllerServicePort", serviceName = "AsynchUserProvisionService") public class AsynchUserProvisioningServiceImpl implements MuleContextAware, AsynchUserProvisionService { protected static final Log log = LogFactory.getLog(AsynchUserProvisioningServiceImpl.class); protected ProvisionService provisionService; MuleContext muleContext; static protected ResourceBundle res = ResourceBundle.getBundle("datasource"); static String serviceHost = res.getString("openiam.service_base"); static String serviceContext = res.getString("openiam.idm.ws.path"); /* (non-Javadoc) * @see org.openiam.provision.service.ProvisionService#addUser(org.openiam.provision.dto.ProvisionUser) */ public void addUser(ProvisionUser user) { log.debug("START PROVISIONING - ADD USER CALLED..................."); try { Map<String,String> msgPropMap = new HashMap<String,String>(); msgPropMap.put("SERVICE_HOST", serviceHost); msgPropMap.put("SERVICE_CONTEXT", serviceContext); //Create the client with the context MuleClient client = new MuleClient(muleContext); client.sendAsync("vm://provisionServiceAddMessage", (ProvisionUser)user, msgPropMap); }catch(Exception e) { log.debug("EXCEPTION:AsynchIdentitySynchService"); log.error(e); //e.printStackTrace(); } log.debug("END PROVISIONING - ADD USER ---------------------"); } /* (non-Javadoc) * @see org.openiam.provision.service.ProvisionService#modifyUser(org.openiam.provision.dto.ProvisionUser) */ public void modifyUser(ProvisionUser user) { log.debug("START PROVISIONING - MODIFY USER CALLED..................."); try { Map<String,String> msgPropMap = new HashMap<String,String>(); msgPropMap.put("SERVICE_HOST", serviceHost); msgPropMap.put("SERVICE_CONTEXT", serviceContext); //Create the client with the context MuleClient client = new MuleClient(muleContext); client.sendAsync("vm://provisionServiceModifyMessage", (ProvisionUser)user, msgPropMap); }catch(Exception e) { log.debug("EXCEPTION:AsynchIdentitySynchService"); log.error(e); //e.printStackTrace(); } log.debug("END PROVISIONING - MODIFY USER ---------------------"); } public ProvisionService getProvisionService() { return provisionService; } public void setProvisionService(ProvisionService provisionService) { this.provisionService = provisionService; } public void setMuleContext(MuleContext ctx) { log.debug("AsynchUserProvisioningServiceImpl - setMuleContext called."); muleContext = ctx; } }