diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java
index e268d80..ef7e4ab 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java
@@ -120,6 +120,12 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
@Type(type = "org.hibernate.type.BinaryType")
private byte[] conteudoCriptografado;
+ /** Atributo conteudoAssinado. */
+ @Lob
+ @Basic(fetch = FetchType.LAZY)
+ @Type(type = "org.hibernate.type.BinaryType")
+ private byte[] conteudoAssinado;
+
/** Atributo icon. */
@JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class })
private String icon;
@@ -1070,4 +1076,24 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
this.tresAssinaturas = tresAssinaturas;
}
+ /**
+ * Retorna o valor do atributo conteudoAssinado
+ *
+ * @return byte[]
+ */
+ public byte[] getConteudoAssinado() {
+
+ return conteudoAssinado;
+ }
+
+ /**
+ * Define o valor do atributo conteudoAssinado
.
+ *
+ * @param conteudoAssinado
+ */
+ public void setConteudoAssinado(byte[] conteudoAssinado) {
+
+ this.conteudoAssinado = conteudoAssinado;
+ }
+
}
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/AssinaturaUtilService.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/AssinaturaUtilService.java
index 310eb9b..a1c3432 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/AssinaturaUtilService.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/AssinaturaUtilService.java
@@ -1,5 +1,7 @@
package br.com.centralit.api.service;
+import java.security.NoSuchAlgorithmException;
+
/**
*
*
@@ -53,4 +55,42 @@ public interface AssinaturaUtilService {
*/
byte[] geraAssinatura(byte[] conteudo) throws Exception;
+ /**
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA + *
+ * + *+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO + *
+ * + * Método responsável por gerar o hash do documento + * + * @author rogerio.costa + * + * @param doc + * @return + * @throws NoSuchAlgorithmException + */ + byte[] gerarHash(byte[] doc) throws NoSuchAlgorithmException; + + /** + *+ * Iniciativa(s): NUMERO_INICIATIVA + *
+ * + *+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO + *
+ * + * Método responsável por por gerar o hash do documento + * + * @author rogerio.costa + * + * @param doc + * @return + * @throws NoSuchAlgorithmException + */ + String gerarHash(String doc) throws NoSuchAlgorithmException; + } diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/AssinaturaUtilServiceImpl.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/AssinaturaUtilServiceImpl.java index 8dd30e6..3dcfd63 100644 --- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/AssinaturaUtilServiceImpl.java +++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/AssinaturaUtilServiceImpl.java @@ -214,11 +214,63 @@ public class AssinaturaUtilServiceImpl implements AssinaturaUtilService { */ public byte[] gerarHash(byte[] doc) throws NoSuchAlgorithmException { - MessageDigest md = MessageDigest.getInstance("MD5"); + MessageDigest md = MessageDigest.getInstance("SHA-1"); md.update(doc); return md.digest(); } + /** + *+ * Iniciativa(s): NUMERO_INICIATIVA + *
+ * + *+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO + *
+ * + * Método responsável por por gerar o hash do documento + * + * @author rogerio.costa + * + * @param doc + * @return + * @throws NoSuchAlgorithmException + */ + public String gerarHash(String doc) throws NoSuchAlgorithmException { + + MessageDigest digest = MessageDigest.getInstance("SHA-1"); + + digest.update(doc.getBytes()); + + return convertByteArrayToHexString(digest.digest()); + } + + /** + *+ * Iniciativa(s): NUMERO_INICIATIVA + *
+ * + *+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO + *
+ * + * Método responsável por converter byte para String + * + * @author rogerio.costa + * + * @param arrayBytes + * + * @return String + */ + private static String convertByteArrayToHexString(byte[] arrayBytes) { + + StringBuffer stringBuffer = new StringBuffer(); + for (int i = 0; i < arrayBytes.length; i++) { + stringBuffer.append(Integer.toString(( arrayBytes[i] & 0xff ) + 0x100, 16).substring(1)); + } + return stringBuffer.toString(); + } + } diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/TarjaAssinaturaServiceImpl.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/TarjaAssinaturaServiceImpl.java index e3d53f2..e68881a 100644 --- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/TarjaAssinaturaServiceImpl.java +++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/TarjaAssinaturaServiceImpl.java @@ -19,6 +19,7 @@ import br.com.centralit.api.model.Assinatura; import br.com.centralit.api.model.ConteudoTarja; import br.com.centralit.api.model.TarjaAssinatura; import br.com.centralit.api.service.AnexoImagemService; +import br.com.centralit.api.service.AssinaturaUtilService; import br.com.centralit.api.service.DominioService; import br.com.centralit.api.service.OrganizacaoService; import br.com.centralit.api.service.TarjaAssinaturaService; @@ -65,6 +66,10 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl