Commit 914163589b24c36502004644802dcaa07f384699
1 parent
04a6ed49
Exists in
master
redmine #4583 validacao usuario ldap ao assinar
Showing
3 changed files
with
127 additions
and
12 deletions
Show diff stats
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/AssinaturaServiceImpl.java
1 | package br.com.centralit.api.service.impl; | 1 | package br.com.centralit.api.service.impl; |
2 | 2 | ||
3 | +import java.util.Hashtable; | ||
4 | + | ||
5 | +import javax.naming.AuthenticationException; | ||
6 | +import javax.naming.Context; | ||
7 | +import javax.naming.NamingEnumeration; | ||
8 | +import javax.naming.NamingException; | ||
9 | +import javax.naming.directory.DirContext; | ||
10 | +import javax.naming.directory.InitialDirContext; | ||
11 | +import javax.naming.directory.SearchControls; | ||
12 | +import javax.naming.directory.SearchResult; | ||
13 | + | ||
3 | import org.springframework.beans.factory.annotation.Autowired; | 14 | import org.springframework.beans.factory.annotation.Autowired; |
4 | import org.springframework.beans.factory.annotation.Value; | 15 | import org.springframework.beans.factory.annotation.Value; |
5 | import org.springframework.security.core.context.SecurityContextHolder; | 16 | import org.springframework.security.core.context.SecurityContextHolder; |
@@ -24,7 +35,10 @@ import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; | @@ -24,7 +35,10 @@ import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; | ||
24 | import br.com.centralit.framework.util.UtilObjeto; | 35 | import br.com.centralit.framework.util.UtilObjeto; |
25 | import br.com.centralit.framework.util.UtilString; | 36 | import br.com.centralit.framework.util.UtilString; |
26 | 37 | ||
38 | + | ||
27 | /** | 39 | /** |
40 | + * <p><b>Title: </b></p> | ||
41 | + * <p><b>Description: </b></p> | ||
28 | * <p> | 42 | * <p> |
29 | * <b>Title: </b> | 43 | * <b>Title: </b> |
30 | * </p> | 44 | * </p> |
@@ -36,41 +50,65 @@ import br.com.centralit.framework.util.UtilString; | @@ -36,41 +50,65 @@ import br.com.centralit.framework.util.UtilString; | ||
36 | * @author rogerio.cassimiro | 50 | * @author rogerio.cassimiro |
37 | * | 51 | * |
38 | */ | 52 | */ |
53 | +@SuppressWarnings({ "rawtypes", "unchecked", "unused" }) | ||
39 | @Service("assinaturaService") | 54 | @Service("assinaturaService") |
40 | public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> implements AssinaturaService { | 55 | public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> implements AssinaturaService { |
41 | 56 | ||
42 | @Autowired | 57 | @Autowired |
43 | private AssinaturaDao assinaturaDao; | 58 | private AssinaturaDao assinaturaDao; |
59 | + | ||
44 | 60 | ||
45 | @Autowired | 61 | @Autowired |
46 | private DocumentoGedService documentoGedService; | 62 | private DocumentoGedService documentoGedService; |
63 | + | ||
47 | 64 | ||
48 | @Autowired | 65 | @Autowired |
49 | private UsuarioService usuarioService; | 66 | private UsuarioService usuarioService; |
67 | + | ||
50 | 68 | ||
51 | @Autowired | 69 | @Autowired |
52 | private DominioService dominioService; | 70 | private DominioService dominioService; |
71 | + | ||
53 | 72 | ||
54 | @Autowired | 73 | @Autowired |
55 | private FuncaoService funcaoService; | 74 | private FuncaoService funcaoService; |
75 | + | ||
56 | 76 | ||
57 | @Autowired | 77 | @Autowired |
58 | private PessoaService pessoaService; | 78 | private PessoaService pessoaService; |
79 | + | ||
59 | 80 | ||
60 | @Autowired | 81 | @Autowired |
61 | private HistoricoAlteracaoProcessoService historicoAlteracaoProcessoService; | 82 | private HistoricoAlteracaoProcessoService historicoAlteracaoProcessoService; |
83 | + | ||
62 | 84 | ||
63 | @Autowired | 85 | @Autowired |
64 | private TarjaAssinaturaService tarjaAssinaturaService; | 86 | private TarjaAssinaturaService tarjaAssinaturaService; |
87 | + | ||
65 | 88 | ||
66 | @Value("${metodo.autenticacao.ldap}") | 89 | @Value("${metodo.autenticacao.ldap}") |
67 | private String ldap; | 90 | private String ldap; |
91 | + | ||
92 | + | ||
93 | + @Value("${ldap.host.name}") | ||
94 | + public String ldapHostName; | ||
95 | + | ||
96 | + @Value("${ldap.userDn}") | ||
97 | + public String ldapUserDn = "CN=CitSmart,OU=CitSmart,OU=Pro,OU=ContasServicos,OU=CentralIT,DC=cit,DC=local"; | ||
98 | + | ||
99 | + @Value("${ldap.manager.password}") | ||
100 | + public String ldapManagerPassword; | ||
101 | + | ||
102 | + @Value("${ldap.searchDC}") | ||
103 | + public String ldapSearchDC; | ||
68 | 104 | ||
69 | @Autowired | 105 | @Autowired |
106 | + public AssinaturaServiceImpl( AssinaturaDao assinaturaDao) { | ||
70 | public AssinaturaServiceImpl( AssinaturaDao assinaturaDao ) { | 107 | public AssinaturaServiceImpl( AssinaturaDao assinaturaDao ) { |
71 | 108 | ||
72 | this.dao = assinaturaDao; | 109 | this.dao = assinaturaDao; |
73 | } | 110 | } |
111 | + | ||
74 | 112 | ||
75 | /** | 113 | /** |
76 | * Salva assinatura do documento e gera histórico | 114 | * Salva assinatura do documento e gera histórico |
@@ -82,6 +120,7 @@ public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> | @@ -82,6 +120,7 @@ public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> | ||
82 | validarSenha(assinatura.getPassword(), usuario); | 120 | validarSenha(assinatura.getPassword(), usuario); |
83 | montarTransients(assinatura, usuario); | 121 | montarTransients(assinatura, usuario); |
84 | historicoAlteracaoProcessoService.gerarHistoricoAssinatura(assinatura); | 122 | historicoAlteracaoProcessoService.gerarHistoricoAssinatura(assinatura); |
123 | + tarjaAssinaturaService.gerarAssinaturaInternaUsuario(assinatura,assinatura.getDocumentoGed().getFormaCriacao().getCodigo()); | ||
85 | tarjaAssinaturaService.gerarAssinaturaInternaUsuario(assinatura, assinatura.getDocumentoGed().getFormaCriacao().getCodigo()); | 124 | tarjaAssinaturaService.gerarAssinaturaInternaUsuario(assinatura, assinatura.getDocumentoGed().getFormaCriacao().getCodigo()); |
86 | alterarEstadoDocumento(assinatura.getDocumentoGed()); | 125 | alterarEstadoDocumento(assinatura.getDocumentoGed()); |
87 | return super.save(assinatura); | 126 | return super.save(assinatura); |
@@ -94,6 +133,7 @@ public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> | @@ -94,6 +133,7 @@ public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> | ||
94 | * @param documentoGed | 133 | * @param documentoGed |
95 | */ | 134 | */ |
96 | private void alterarEstadoDocumento(DocumentoGed documentoGed) { | 135 | private void alterarEstadoDocumento(DocumentoGed documentoGed) { |
136 | + if(documentoGed.getFormaCriacao().getCodigo().equals(1L) && !documentoGed.getEstado().getCodigo().equals(2L)) | ||
97 | 137 | ||
98 | if (documentoGed.getFormaCriacao().getCodigo().equals(1L) && !documentoGed.getEstado().getCodigo().equals(2L)) | 138 | if (documentoGed.getFormaCriacao().getCodigo().equals(1L) && !documentoGed.getEstado().getCodigo().equals(2L)) |
99 | documentoGed.setEstado(dominioService.findByChaveAndCodigo("estadoDocumentoGed", 2L)); | 139 | documentoGed.setEstado(dominioService.findByChaveAndCodigo("estadoDocumentoGed", 2L)); |
@@ -114,6 +154,7 @@ public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> | @@ -114,6 +154,7 @@ public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> | ||
114 | assinatura.setTipoAssinatura(dominioService.findByChaveAndCodigo(Dominio.TIPO_ASSINATURA, Dominio.TIPO_ASSINATURA_INTERNA)); | 154 | assinatura.setTipoAssinatura(dominioService.findByChaveAndCodigo(Dominio.TIPO_ASSINATURA, Dominio.TIPO_ASSINATURA_INTERNA)); |
115 | assinatura.setFuncao(funcaoService.getReference(assinatura.getFuncao().getId())); | 155 | assinatura.setFuncao(funcaoService.getReference(assinatura.getFuncao().getId())); |
116 | } | 156 | } |
157 | + | ||
117 | 158 | ||
118 | /** | 159 | /** |
119 | * Método responsável por validar senha para assinar o documento | 160 | * Método responsável por validar senha para assinar o documento |
@@ -123,21 +164,85 @@ public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> | @@ -123,21 +164,85 @@ public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> | ||
123 | * @param usuario | 164 | * @param usuario |
124 | */ | 165 | */ |
125 | private void validarSenha(String password, Usuario usuario) { | 166 | private void validarSenha(String password, Usuario usuario) { |
167 | + | ||
168 | + if(!UtilString.isNullOrEmpty(ldap) && ldap.equals("false")) { | ||
126 | 169 | ||
127 | - if (!UtilString.isNullOrEmpty(ldap) && ldap.equals("false")) { | 170 | + if(UtilString.isNullOrEmpty(password)) |
171 | + if (!UtilString.isNullOrEmpty(ldap) && !Boolean.parseBoolean(ldap)) { | ||
128 | 172 | ||
129 | if (UtilString.isNullOrEmpty(password)) | 173 | if (UtilString.isNullOrEmpty(password)) |
130 | throw new BusinessException("ECM.VALIDACAO.SENHA_ASSINATURA", CodigoErro.REGRA_NEGOCIO.getValue(), ""); | 174 | throw new BusinessException("ECM.VALIDACAO.SENHA_ASSINATURA", CodigoErro.REGRA_NEGOCIO.getValue(), ""); |
175 | + | ||
176 | + if(!UtilObjeto.isReferencia(this.usuarioService.loadUserByUsernamePasswordMobile(usuario.getUsername(), password))) | ||
131 | 177 | ||
132 | if (!UtilObjeto.isReferencia(this.usuarioService.loadUserByUsernamePasswordMobile(usuario.getUsername(), password))) | 178 | if (!UtilObjeto.isReferencia(this.usuarioService.loadUserByUsernamePasswordMobile(usuario.getUsername(), password))) |
133 | throw new BusinessException("ECM.VALIDACAO.SENHA_ASSINATURA_INVALIDA", CodigoErro.REGRA_NEGOCIO.getValue(), ""); | 179 | throw new BusinessException("ECM.VALIDACAO.SENHA_ASSINATURA_INVALIDA", CodigoErro.REGRA_NEGOCIO.getValue(), ""); |
180 | + | ||
134 | 181 | ||
135 | - } else { | ||
136 | - // TODO LDAP validação | 182 | + } else if (!UtilString.isNullOrEmpty(ldap) && Boolean.parseBoolean(ldap)) { |
183 | + | ||
184 | + autenticarMaster(password, usuario.getUsername()); | ||
137 | } | 185 | } |
138 | } | 186 | } |
139 | 187 | ||
140 | /** | 188 | /** |
189 | + * Método responsável por autenticar usuário master do LDAP | ||
190 | + * | ||
191 | + * @author rogerio.cassimiro | ||
192 | + * @return {@link Boolean} | ||
193 | + */ | ||
194 | + public boolean autenticarMaster(String password, String userName) { | ||
195 | + | ||
196 | + Hashtable authEnv = new Hashtable(11); | ||
197 | + authEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); | ||
198 | + authEnv.put(Context.PROVIDER_URL, ldapHostName); | ||
199 | + authEnv.put(Context.SECURITY_AUTHENTICATION, "simple"); | ||
200 | + authEnv.put(Context.SECURITY_PRINCIPAL, ldapUserDn); | ||
201 | + authEnv.put(Context.SECURITY_CREDENTIALS, ldapManagerPassword); | ||
202 | + | ||
203 | + try { | ||
204 | + | ||
205 | + SearchControls groupsSearchCtls = new SearchControls(); | ||
206 | + groupsSearchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE); | ||
207 | + DirContext authContext = new InitialDirContext(authEnv); | ||
208 | + NamingEnumeration results = authContext.search(ldapSearchDC, "(sAMAccountName=" + userName + ")", groupsSearchCtls); | ||
209 | + while (results.hasMore()) { | ||
210 | + SearchResult result = (SearchResult) results.next(); | ||
211 | + if (autenticarUser(result.getName() + "," + ldapSearchDC, password)) { | ||
212 | + return Boolean.TRUE; | ||
213 | + } else { | ||
214 | + //TODO LDAP validação | ||
215 | + throw new BusinessException("ECM.VALIDACAO.SENHA_ASSINATURA_INVALIDA", CodigoErro.REGRA_NEGOCIO.getValue(), ""); | ||
216 | + } | ||
217 | + } | ||
218 | + | ||
219 | + } catch (AuthenticationException authEx) { | ||
220 | + throw new BusinessException("ECM.VALIDACAO.SENHA_ASSINATURA_INVALIDA", CodigoErro.REGRA_NEGOCIO.getValue(), ""); | ||
221 | + } catch (NamingException namEx) { | ||
222 | + throw new BusinessException("ECM.VALIDACAO.SENHA_ASSINATURA_INVALIDA", CodigoErro.REGRA_NEGOCIO.getValue(), ""); | ||
223 | + } | ||
224 | + return Boolean.FALSE; | ||
225 | + } | ||
226 | + | ||
227 | + private boolean autenticarUser(String caminho, String senha) { | ||
228 | + | ||
229 | + Hashtable authEnv = new Hashtable(11); | ||
230 | + authEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); | ||
231 | + authEnv.put(Context.PROVIDER_URL, ldapHostName); | ||
232 | + authEnv.put(Context.SECURITY_AUTHENTICATION, "simple"); | ||
233 | + authEnv.put(Context.SECURITY_PRINCIPAL, caminho); | ||
234 | + authEnv.put(Context.SECURITY_CREDENTIALS, senha); | ||
235 | + try { | ||
236 | + DirContext authContext = new InitialDirContext(authEnv); | ||
237 | + return true; | ||
238 | + } catch (AuthenticationException authEx) { | ||
239 | + } catch (NamingException namEx) { | ||
240 | + } | ||
241 | + return false; | ||
242 | + | ||
243 | + } | ||
244 | + | ||
245 | + /** | ||
141 | * Método responsável por validar se o usuário já teve assinatura anterior para o documento informado | 246 | * Método responsável por validar se o usuário já teve assinatura anterior para o documento informado |
142 | * | 247 | * |
143 | * @author rogerio.cassimiro | 248 | * @author rogerio.cassimiro |
@@ -145,6 +250,7 @@ public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> | @@ -145,6 +250,7 @@ public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> | ||
145 | */ | 250 | */ |
146 | @Override | 251 | @Override |
147 | public Boolean validarAssinaturaPorUsuario(Long idDocumento) { | 252 | public Boolean validarAssinaturaPorUsuario(Long idDocumento) { |
253 | + return this.assinaturaDao.validarAssinaturaPorUsuario(idDocumento, ((Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getId()); | ||
148 | 254 | ||
149 | return this.assinaturaDao.validarAssinaturaPorUsuario(idDocumento, ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).getId()); | 255 | return this.assinaturaDao.validarAssinaturaPorUsuario(idDocumento, ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).getId()); |
150 | } | 256 | } |
@@ -154,10 +260,10 @@ public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> | @@ -154,10 +260,10 @@ public class AssinaturaServiceImpl extends GenericServiceImpl<Assinatura, Long> | ||
154 | 260 | ||
155 | Assinatura assinatura = (Assinatura) this.assinaturaDao.getReference(id); | 261 | Assinatura assinatura = (Assinatura) this.assinaturaDao.getReference(id); |
156 | assinatura.getConteudoTarja().setConteudo(tarjaAssinaturaService.decrypted(assinatura.getConteudoTarja().getConteudoCriptografado())); | 262 | assinatura.getConteudoTarja().setConteudo(tarjaAssinaturaService.decrypted(assinatura.getConteudoTarja().getConteudoCriptografado())); |
263 | + if(UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())){ | ||
157 | if (UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())) { | 264 | if (UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())) { |
158 | assinatura.getDocumentoGed().getConteudoTarja().setConteudo(tarjaAssinaturaService.decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado())); | 265 | assinatura.getDocumentoGed().getConteudoTarja().setConteudo(tarjaAssinaturaService.decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado())); |
159 | } | 266 | } |
160 | return assinatura; | 267 | return assinatura; |
161 | } | 268 | } |
162 | - | ||
163 | -} | 269 | +} |
164 | \ No newline at end of file | 270 | \ No newline at end of file |
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/TarjaAssinaturaServiceImpl.java
@@ -52,6 +52,7 @@ import com.lowagie.text.DocumentException; | @@ -52,6 +52,7 @@ import com.lowagie.text.DocumentException; | ||
52 | * @author ciro.junior (<a href="mailto:ciro.junior@centralit.com.br">ciro.junior@centralit.com.br</a>) | 52 | * @author ciro.junior (<a href="mailto:ciro.junior@centralit.com.br">ciro.junior@centralit.com.br</a>) |
53 | * | 53 | * |
54 | */ | 54 | */ |
55 | + | ||
55 | @Service("tarjaAssinaturaService") | 56 | @Service("tarjaAssinaturaService") |
56 | public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatura, Long> implements TarjaAssinaturaService { | 57 | public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatura, Long> implements TarjaAssinaturaService { |
57 | 58 | ||
@@ -147,7 +148,7 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu | @@ -147,7 +148,7 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu | ||
147 | TarjaAssinatura tarjaAssinatura = (TarjaAssinatura) tarjaAssinaturaDao.getReference(assinatura.getConteudoTarja().getIdTarjaAssinatura()); | 148 | TarjaAssinatura tarjaAssinatura = (TarjaAssinatura) tarjaAssinaturaDao.getReference(assinatura.getConteudoTarja().getIdTarjaAssinatura()); |
148 | String conteudoAssinatura = getConteudoTarja(assinatura, tarjaAssinatura.getConteudo(), tarjaAssinatura); | 149 | String conteudoAssinatura = getConteudoTarja(assinatura, tarjaAssinatura.getConteudo(), tarjaAssinatura); |
149 | 150 | ||
150 | - gerarAssinaturaDocAnexo(assinatura, tarjaAssinatura.getAnexoImagem(), conteudoAssinatura); | 151 | + gerarAssinaturaDocAnexo(assinatura, tarjaAssinatura.getAnexoImagem(), conteudoAssinatura, formaCriacao); |
151 | if (formaCriacao == 1) | 152 | if (formaCriacao == 1) |
152 | gerarAssinaturaDocOnline(assinatura, tarjaAssinatura.getAnexoImagem(), conteudoAssinatura); | 153 | gerarAssinaturaDocOnline(assinatura, tarjaAssinatura.getAnexoImagem(), conteudoAssinatura); |
153 | } | 154 | } |
@@ -196,12 +197,23 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu | @@ -196,12 +197,23 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu | ||
196 | * @throws DocumentException | 197 | * @throws DocumentException |
197 | * @throws IOException | 198 | * @throws IOException |
198 | */ | 199 | */ |
199 | - private void gerarAssinaturaDocAnexo(Assinatura assinatura, AnexoImagem anexoImagem, String conteudoAssinatura) { | 200 | + private void gerarAssinaturaDocAnexo(Assinatura assinatura, AnexoImagem anexoImagem, String conteudoAssinatura, Long formaCriacao) { |
200 | 201 | ||
201 | assinatura.getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoAssinatura)); | 202 | assinatura.getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoAssinatura)); |
202 | assinatura.getConteudoTarja().setAnexoImagem(anexoImagem); | 203 | assinatura.getConteudoTarja().setAnexoImagem(anexoImagem); |
204 | + | ||
205 | + if (formaCriacao == 2){ | ||
206 | + StringBuilder conteudoOriginalDocAnexo = new StringBuilder(); | ||
207 | + if (UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())) { | ||
208 | + conteudoOriginalDocAnexo.append(decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado())); | ||
209 | + } else { | ||
210 | + assinatura.getDocumentoGed().setConteudoTarja(new ConteudoTarja()); | ||
211 | + } | ||
212 | + conteudoOriginalDocAnexo.append(conteudoAssinatura); | ||
213 | + assinatura.getDocumentoGed().getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoOriginalDocAnexo.toString())); | ||
214 | + } | ||
203 | } | 215 | } |
204 | - | 216 | + |
205 | /** | 217 | /** |
206 | * Método responsável por gerar assinatura em documento online | 218 | * Método responsável por gerar assinatura em documento online |
207 | * | 219 | * |
cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturas.html
@@ -43,10 +43,7 @@ | @@ -43,10 +43,7 @@ | ||
43 | <td colspan="7"> | 43 | <td colspan="7"> |
44 | <iframe id="conteudoPrototipo" srcdoc="{{assinaturaSelecionada.documentoGed.conteudoTarja.conteudo}}" allowfullscreen class="iframe-assinatura" ng-if="visualizarAssinaturaOnLine"></iframe> | 44 | <iframe id="conteudoPrototipo" srcdoc="{{assinaturaSelecionada.documentoGed.conteudoTarja.conteudo}}" allowfullscreen class="iframe-assinatura" ng-if="visualizarAssinaturaOnLine"></iframe> |
45 | <div class="row" style="margin-top: 10px; margin-bottom: 10px;" ng-hide="visualizarAssinaturaOnLine"> | 45 | <div class="row" style="margin-top: 10px; margin-bottom: 10px;" ng-hide="visualizarAssinaturaOnLine"> |
46 | - <div class="col-sm-2" ng-show="assinaturaSelecionada.conteudoTarja.anexoImagem.anexo"> | ||
47 | - <img ng-src="data:image/JPEG;base64,{{assinaturaSelecionada.conteudoTarja.anexoImagem.anexo}}" class="img-thumbnail" style="max-width: 80px; height: 80px;"> | ||
48 | - </div> | ||
49 | - <div class="col-md-10"> | 46 | + <div class="col-md-12"> |
50 | <iframe id="conteudoAssinado" srcdoc="{{assinaturaSelecionada.conteudoTarja.conteudo}}" allowfullscreen class="iframe-assinatura" | 47 | <iframe id="conteudoAssinado" srcdoc="{{assinaturaSelecionada.conteudoTarja.conteudo}}" allowfullscreen class="iframe-assinatura" |
51 | style="min-height: 80px !important; max-height: 120px !important;"> | 48 | style="min-height: 80px !important; max-height: 120px !important;"> |
52 | </iframe> | 49 | </iframe> |