Package org.openeai.uportal.handlers

Source Code of org.openeai.uportal.handlers.EnterpriseUserPasswordQueryHandler

package org.openeai.uportal.handlers;

import org.openeai.moa.jmsobjects.JmsEnterpriseObject;
import org.openeai.jms.producer.PointToPointProducer;
import org.any_openeai_enterprise.moa.objects.resources.v1_0.LightweightPerson;
import org.any_openeai_enterprise.moa.objects.resources.v1_0.Name;
import org.any_openeai_enterprise.moa.jmsobjects.coreapplication.v1_0.EnterpriseUser;
import org.any_openeai_enterprise.moa.jmsobjects.coreapplication.v1_0.NetId;
import org.any_openeai_enterprise.moa.objects.resources.v1_0.Password;
import org.any_openeai_enterprise.moa.jmsobjects.coreapplication.v1_0.EnterpriseUserPassword;
import org.jasig.portal.services.LogService;
import org.jasig.portal.security.provider.AccountStoreFactory;

public class EnterpriseUserPasswordQueryHandler extends UportalFormHandlerBase implements UportalFormHandler {
  public EnterpriseUserPasswordQueryHandler() {
  }
 
  public String process() throws UportalFormHandlerException {
    String messageObjectName = getProperties().getProperty(MESSAGE_OBJECT_NAME_PROP);
    String queryObjectName = getProperties().getProperty(QUERY_OBJECT_NAME_PROP);
    String producerName = getProperties().getProperty(PRODUCER_NAME_PROP);
    String xml = INITIAL_XML;
    String firstName = (String)getChannelStaticData().getPerson().getAttribute("givenName");
    String lastName = (String)getChannelStaticData().getPerson().getAttribute("sn");
    String instId = Integer.toString(getChannelStaticData().getPerson().getID());
    int principalHashCode = getChannelStaticData().getPerson().getSecurityContext().getPrincipal().hashCode();
    String userName = getChannelStaticData().getPerson().getSecurityContext().getPrincipal().getUID();
    String emailAddress = (String)getChannelStaticData().getPerson().getAttribute("mail");
//    String principal = emailAddress.substring(0, emailAddress.indexOf("@"));   
    String principal = getChannelStaticData().getPerson().getSecurityContext().getPrincipal().getUID();
    String domain = emailAddress.substring(emailAddress.indexOf("@") + 1);

    LogService.log(LogService.INFO, "[EnterpriseUserPasswordQueryHandler] username (UID) is " + userName);
    LogService.log(LogService.INFO, "[EnterpriseUserPasswordQueryHandler] principal is " + principal);
    LogService.log(LogService.INFO, "[EnterpriseUserPasswordQueryHandler] domain is " + domain);
    LogService.log(LogService.INFO, "[EnterpriseUserPasswordQueryHandler] instId is " + instId);
    LogService.log(LogService.INFO, "[EnterpriseUserPasswordQueryHandler] principalHashCode is " + principalHashCode);
    LogService.log(LogService.INFO, "[EnterpriseUserPasswordQueryHandler] emailAddress is " + emailAddress);

    /*
    try {
      String acct[] = AccountStoreFactory.getAccountStoreImpl().getUserAccountInformation(userName);
      if (acct[0] != null) {
        String first_name = acct[1];
        String last_name = acct[2];
        String md5_passwd = acct[0];
        LogService.log(LogService.INFO, "[EnterpriseUserPasswordQueryHandler] user account info (first_name) " + first_name);
        LogService.log(LogService.INFO, "[EnterpriseUserPasswordQueryHandler] user account info (last_name) " + last_name);
        LogService.log(LogService.INFO, "[EnterpriseUserPasswordQueryHandler] user account info (md5_passwd) " + md5_passwd);
      }
    }
    catch (Exception e) {
      LogService.log(LogService.ERROR, e);
      e.printStackTrace();
      throw new UportalFormHandlerException("Exception obtaining user account information", e);
    }
    */

    try {
      EnterpriseUser eu =
        (EnterpriseUser)getAppConfig().getObject(queryObjectName);
      eu.getEnterpriseFields().setIgnoreValidation(true);
      LogService.log(LogService.INFO, "got EnterpriseUser...");

      LightweightPerson lPerson = eu.newLightweightPerson();
      lPerson.getEnterpriseFields().setIgnoreValidation(true);

      NetId netId = eu.newNetId();
      netId.setPrincipal(principal);
      netId.setDomain(domain);
      eu.addNetId(netId);

      if (instId != null && instId.length() > 0) {
        lPerson.setInstitutionalId(instId);
        Name name = lPerson.newName();
        name.setFirstName(firstName);
        name.setLastName(lastName);
        lPerson.setName(name);
        LogService.log(LogService.INFO, "set LightweightPerson on EnterpriseUser...");
        eu.setLightweightPerson(lPerson);

        JmsEnterpriseObject jeo = (JmsEnterpriseObject)getAppConfig().getObject(messageObjectName);
        LogService.log(LogService.INFO, "got " + messageObjectName + " from AppConfig, performing Query...");

        // todo - use producer pool
        java.util.List returnedJeos =
          jeo.query(eu,
            (PointToPointProducer)getAppConfig().getObject(producerName));
        LogService.log(LogService.INFO, "got " + returnedJeos.size() + " " + messageObjectName + "'s back.");

        for (int i=0; i<returnedJeos.size(); i++) {
          JmsEnterpriseObject j = (JmsEnterpriseObject)returnedJeos.get(i);
          j.getXmlEnterpriseObject().getEnterpriseFields().setIgnoreValidation(true);
          xml += j.getXmlEnterpriseObject().toXmlString();
        }
        if (returnedJeos.size() == 0) {
          // todo - if there's no EnterpriseUserPassword object returned, just
          // populate one with values from uPortal then, when the password reset
          // is done (update handler) do a create instead of an update.
          LogService.log(LogService.INFO, "[EnterpriseUserPasswordQueryHandler] EnterpriseUserPassword doesn't exist, using uPortal info.");
          EnterpriseUserPassword eup = (EnterpriseUserPassword)getAppConfig().getObject(messageObjectName);
          eup.setEnterpriseUser(eu);
          Password p = eup.newPassword();
          p.setValue("eupqhunknown");
          p.setType("secure credential");
          p.setEncryption("cleartext");
          eup.setPassword(p);

//          eup.create((PointToPointProducer)getAppConfig().getObject(producerName));
//          LogService.log(LogService.INFO, "[EnterpriseUserPasswordQueryHandler] EnterpriseUserPassword was created.");
          xml += eup.getXmlEnterpriseObject().toXmlString();
        }
      }
      else {
        xml += "<LightweightPerson><InstitutionalId></InstitutionalId></LightweightPerson>";
      }
    }
    catch (Exception openeaiExc) {
      LogService.log(LogService.ERROR, openeaiExc);
      openeaiExc.printStackTrace();
      throw new UportalFormHandlerException("Exception rendering XML for display", openeaiExc);
    }
    return xml;
  }
}
TOP

Related Classes of org.openeai.uportal.handlers.EnterpriseUserPasswordQueryHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.