Package org.ejbca.core.protocol.xkms.generators

Source Code of org.ejbca.core.protocol.xkms.generators.LocateResponseGenerator

/*************************************************************************
*                                                                       *
*  EJBCA: The OpenSource Certificate Authority                          *
*                                                                       *
*  This software is free software; you can redistribute it and/or       *
*  modify it under the terms of the GNU Lesser General Public           *
*  License as published by the Free Software Foundation; either         *
*  version 2.1 of the License, or any later version.                    *
*                                                                       *
*  See terms of license at gnu.org.                                     *
*                                                                       *
*************************************************************************/

package org.ejbca.core.protocol.xkms.generators;

import java.security.cert.X509Certificate;
import java.util.Iterator;
import java.util.List;

import org.apache.log4j.Logger;
import org.cesecore.core.ejb.ca.crl.CrlSession;
import org.ejbca.core.ejb.ca.caadmin.CAAdminSession;
import org.ejbca.core.ejb.ca.store.CertificateStoreSession;
import org.ejbca.core.ejb.ra.UserAdminSession;
import org.ejbca.core.protocol.xkms.common.XKMSConstants;
import org.w3._2002._03.xkms_.LocateRequestType;
import org.w3._2002._03.xkms_.LocateResultType;
import org.w3._2002._03.xkms_.UnverifiedKeyBindingType;

/**
* Class generating a response for a locate call
*
*
* @author Philip Vendil 2006 sep 27
*
* @version $Id: LocateResponseGenerator.java 11268 2011-01-26 23:02:58Z jeklund $
*/

public class LocateResponseGenerator extends KISSResponseGenerator {
 
  private static final Logger log = Logger.getLogger(LocateResponseGenerator.class);

  public LocateResponseGenerator(String remoteIP, LocateRequestType req, CertificateStoreSession certificateStoreSession, UserAdminSession userAdminSession, CrlSession crlSession, CAAdminSession caAdminSession) {
    super(remoteIP, req, certificateStoreSession, userAdminSession, crlSession, caAdminSession);
  }
 
  /**
   * Returns a locate response
   */
  public LocateResultType getResponse(boolean requestVerifies){
    LocateResultType result = xkmsFactory.createLocateResultType();   
    super.populateResponse(result, requestVerifies);   
    LocateRequestType req = (LocateRequestType) this.req;
    if(resultMajor == null){    
      if(!checkValidRespondWithRequest(req.getRespondWith())){
        resultMajor = XKMSConstants.RESULTMAJOR_SENDER;
        resultMinor = XKMSConstants.RESULTMINOR_MESSAGENOTSUPPORTED;
      }
      if(resultMajor == null){
        List<X509Certificate> queryResult = processRequest(req.getQueryKeyBinding());
        if (log.isDebugEnabled()) {
          log.debug("processRequest returned " + queryResult.size() + " results.");
        }
        if(resultMajor == null){    
          Iterator<X509Certificate> iter = queryResult.iterator();
          while(iter.hasNext()){
            X509Certificate nextCert = iter.next();
            result.getUnverifiedKeyBinding().add((UnverifiedKeyBindingType) getResponseValues(req.getQueryKeyBinding(),nextCert,false,false));
          }     
        }
      }
    }
    if(resultMajor == null){
      resultMajor = XKMSConstants.RESULTMAJOR_SUCCESS;
    }
    setResult(result);
    return result;
  }
}
TOP

Related Classes of org.ejbca.core.protocol.xkms.generators.LocateResponseGenerator

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.