maia_modificado/.svn/pristine/7b/7bd5f711d3a3689450950b76e62...

69 lines
2.7 KiB
Plaintext
Executable File

package com.fp.firmas.rules.save;
import java.io.ByteArrayInputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.List;
import com.fp.dto.rules.TransactionRule;
import com.fp.dto.save.SaveRequest;
import com.fp.firmas.rules.common.resources.FirmMessages;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.commondb.exception.CommondbException;
import com.fp.persistence.pfirmas.param.TfirmCertificado;
import com.fp.persistence.pgeneral.gene.TgeneParameters;
import com.fp.persistence.pgeneral.gene.TgeneParametersKey;
/**
* Clase que completa la información acerca de los certificados dentro del repositorio de certificados
*
* @author dcruz
*
*/
public class CertificadoFirma extends TransactionRule{
private static final long serialVersionUID = 1L;
@Override
public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
List<Object> firmCertificados = pSaveRequest.getSaveBeanModifiedRecords("USUARIOCERTIFICADOS");
String path = (String)pSaveRequest.get("path");
for (Object object : firmCertificados) {
if(object instanceof TfirmCertificado){
TfirmCertificado certificado = (TfirmCertificado)object;
guardarCertficadoRepositorio(certificado, path);
}
}
return pSaveRequest;
}
@Override
public SaveRequest reverseProcess(SaveRequest pSaveRequest)
throws Exception {
return pSaveRequest;
}
private void guardarCertficadoRepositorio(TfirmCertificado certificado, String pathCertificado) throws CommondbException, Exception{
// String path = getPath(certificado);//obtiene la ruta a grabar el certificado
// String path = FirmMessages.getString("dir.ruta.base.repositorio") + "/" + certificado.getPk().getIdcertificado();//cambiar por el parametro en la base
String path = pathCertificado + "/" + certificado.getPk().getIdcertificado();
if(!Files.exists(Paths.get(path))){
Files.createFile(Paths.get(path));
Files.copy(new ByteArrayInputStream((byte[])certificado.modifiedData.get("valor_certificado_bin")), Paths.get(path));
}else{
Files.copy(new ByteArrayInputStream((byte[])certificado.modifiedData.get("valor_certificado_bin")), Paths.get(path), StandardCopyOption.REPLACE_EXISTING);
}
}
private String getPath(TfirmCertificado certificado) throws CommondbException, Exception {
TgeneParametersKey tgeneParametersKey = new TgeneParametersKey("PATH_CERTIFICADO_BCE", 1);
TgeneParameters tgeneParameters = TgeneParameters.find(PersistenceHelper.getEntityManager(), tgeneParametersKey);
String path = tgeneParameters.getTextvalue() + "/" + certificado.getPk().getIdcertificado();
return path;
}
}