All Downloads are FREE. Search and download functionalities are using the official Maven repository.

br.com.esec.icpm.libs.signature.helper.RequestSimpleSignatureHelper Maven / Gradle / Ivy

Go to download

This library is used to make integration with Certillion server, so our Clients can easily ask for signatures or generate certificates.

There is a newer version: 1.2.0
Show newest version
package br.com.esec.icpm.libs.signature.helper;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import br.com.esec.icpm.libs.Server;
import br.com.esec.icpm.libs.signature.ApWsFactory;
import br.com.esec.icpm.mss.ws.MessagingModeType;
import br.com.esec.icpm.mss.ws.SignaturePortType;
import br.com.esec.icpm.mss.ws.SignatureRespType;
import br.com.esec.icpm.mss.ws.SignatureSimpleDocumentReqType;
import br.com.esec.icpm.server.ws.CertificateFiltersType;
import br.com.esec.icpm.server.ws.ICPMException;
import br.com.esec.icpm.server.ws.MobileUserType;
import br.com.esec.icpm.server.ws.SignaturePolicyType;

// TODO: Pegar todas as ICPMException e encapsular em SignatureException mais legiveis e padronizadas.
public class RequestSimpleSignatureHelper {

	private static Logger log = LoggerFactory.getLogger(RequestSimpleSignatureHelper.class);

	public static SignatureRespType requestSynchSimpleSignature(Server server, String identifier, String message, SignaturePolicyType policyType, boolean testMode, CertificateFiltersType certificateFilters, Long apId) throws ICPMException {
		log.info("Requesting synch simple signature...");

		SignaturePortType signaturePort = ApWsFactory.getInstance().getSoapService(server);
		SignatureSimpleDocumentReqType request = prepareSimpleRequest(identifier, message, policyType, testMode, certificateFilters, MessagingModeType.SYNCH, apId);
		SignatureRespType response = signaturePort.signatureSimpleDocument(request);

		log.info("Signature requested with transaction id " + response.getTransactionId() + ".");

		return response;
	}

	public static SignatureRespType requestAsynchSimpleSignature(Server server, String identifier, String message, SignaturePolicyType policyType, boolean testMode, CertificateFiltersType certificateFilters, Long apId) throws ICPMException {
		log.info("Requesting asynch simple signature...");

		SignaturePortType signaturePort = ApWsFactory.getInstance().getSoapService(server);
		SignatureSimpleDocumentReqType request = prepareSimpleRequest(identifier, message, policyType, testMode, certificateFilters, MessagingModeType.ASYNCH_CLIENT_SERVER, apId);
		SignatureRespType response = signaturePort.signatureSimpleDocument(request);

		log.info("Signature requested with transaction id " + response.getTransactionId() + ".");

		return response;
	}

	public static SignatureRespType requestAsynchWithNotifySimpleSignature(Server server, String identifier, String message, SignaturePolicyType policyType, boolean testMode, CertificateFiltersType certificateFilters, Long apId) throws ICPMException {
		log.info("Requesting asynch simple signature...");

		SignaturePortType signaturePort = ApWsFactory.getInstance().getSoapService(server);
		SignatureSimpleDocumentReqType request = prepareSimpleRequest(identifier, message, policyType, testMode, certificateFilters, MessagingModeType.ASYNCH_SERVER_SERVER, apId);
		SignatureRespType response = signaturePort.signatureSimpleDocument(request);

		log.info("Signature requested with transaction id " + response.getTransactionId() + ".");

		return response;
	}

	private static SignatureSimpleDocumentReqType prepareSimpleRequest(String identifier, String message, SignaturePolicyType policyType, boolean testMode, CertificateFiltersType certificateFilters, final MessagingModeType messagingMode, Long apId) {
		// Set the mobileUser
		MobileUserType mobileUser = new MobileUserType();
		mobileUser.setUniqueIdentifier(identifier);

		// Set the signature request
		SignatureSimpleDocumentReqType request = new SignatureSimpleDocumentReqType();
		request.setDataToBeSigned(message);
		request.setMobileUser(mobileUser);
		request.setMessagingMode(messagingMode);
		request.setSignaturePolicy(policyType);
		request.setTestMode(testMode);
		request.setCertificateFilters(certificateFilters);

		return request;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy