Search in sources :

Example 1 with PresentableException

use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.

the class ProcessoValidarGet method run.

@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
    boolean fPorCaptcha = false;
    if (req.captcha != null) {
        if (!Utils.verifyCaptcha(req.captcha))
            throw new PresentableUnloggedException("Token de reCaptcha inválido");
        fPorCaptcha = true;
    } else if (isValidToken(req.token, req.numero)) {
        resp.token = req.token;
    } else
        AutenticarPost.assertAuthorization();
    String usuario = null;
    try {
        Usuario u = AutenticarPost.assertUsuario();
        usuario = u.usuario;
    } catch (Exception e) {
        usuario = BalcaojusServlet.INSTANCE.getProperty("public.username");
    }
    String[] numeros = (req.numero != null && req.numero.trim() != "") ? req.numero.split(",") : null;
    if (numeros != null && numeros.length > 100)
        throw new PresentableException("Não é permitido validar mais de 100 números de processos em uma única operação");
    validar(usuario, numeros, req.nome, req.tipodedocumento, req.documento, req.oab, resp);
    if (fPorCaptcha && resp.list != null && resp.list.size() > 0) {
        StringBuilder sb = new StringBuilder();
        for (ProcessoValido p : resp.list) {
            if (sb.length() > 0)
                sb.append(",");
            sb.append(p.numero);
        }
        resp.token = jwt(sb.toString());
    }
}
Also used : Usuario(br.jus.trf2.balcaojus.AutenticarPost.Usuario) PresentableUnloggedException(com.crivano.swaggerservlet.PresentableUnloggedException) PresentableException(com.crivano.swaggerservlet.PresentableException) JWTVerifyException(com.auth0.jwt.JWTVerifyException) PresentableException(com.crivano.swaggerservlet.PresentableException) SignatureException(java.security.SignatureException) IOException(java.io.IOException) PresentableUnloggedException(com.crivano.swaggerservlet.PresentableUnloggedException) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) InvalidKeyException(java.security.InvalidKeyException) ProcessoValido(br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido)

Example 2 with PresentableException

use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.

the class ProcessoValidarGet method validar.

public static void validar(String usuario, String[] numeros, String nome, String tipoDeDocumento, String documento, String oab, IProcessoValidarGet.Response resp) throws Exception, PresentableException {
    Map<String, SwaggerCallParameters> mapp = new HashMap<>();
    int timeout;
    String url;
    String docvalido;
    String context;
    if (documento != null) {
        docvalido = documento.replaceAll("[^0-9]", "");
        if (docvalido.isEmpty())
            throw new PresentableException("Termo de busca inválido !! " + documento);
        url = "/processo/consultar?documento=" + URLEncoder.encode(docvalido, "UTF-8").replace("+", "%20");
        context = " - consulta processo por cpf/cnpj da parte";
        timeout = 30000;
    } else if (nome != null) {
        url = "/processo/consultar?nomeparte=" + URLEncoder.encode(nome.toUpperCase(), "UTF-8").replace("+", "%20");
        context = " - consulta processo por nome da parte";
        timeout = 30000;
    } else if (oab != null) {
        url = "/processo/consultar?oab=" + URLEncoder.encode(oab.toUpperCase(), "UTF-8").replace("+", "%20");
        context = " - consulta processo por oab";
        timeout = 30000;
    } else {
        IUsuarioUsernameProcessoNumerosGet.Request q = new IUsuarioUsernameProcessoNumerosGet.Request();
        q.numeros = StringUtils.join(numeros, ",");
        url = "/processo/" + q.numeros;
        context = " - validar número de processo";
        timeout = 15000;
    }
    url = url.replace("_", "%20");
    for (String system : Utils.getSystems()) {
        mapp.put(system, new SwaggerCallParameters(system + context, Utils.getApiPassword(system), "GET", Utils.getApiUrl(system) + "/usuario/" + usuario + url, null, IUsuarioUsernameProcessoNumerosGet.Response.class));
    }
    SwaggerMultipleCallResult mcr = SwaggerCall.callMultiple(mapp, timeout);
    resp.status = Utils.getStatus(mcr);
    // resp.list = new ArrayList<>();
    Map<String, ProcessoValido> processosRecebidos = new HashMap<>();
    ProcessoValido proc;
    // TODO: Falta lógica para escolher o mais importante dos resultados.
    for (String system : mcr.responses.keySet()) {
        IUsuarioUsernameProcessoNumerosGet.Response rl = (IUsuarioUsernameProcessoNumerosGet.Response) mcr.responses.get(system);
        if (rl.list == null || rl.list.size() == 0)
            continue;
        for (Processo r : rl.list) {
            if (r.numero == null || r.perdecompetencia)
                continue;
            if (processosRecebidos.containsKey(r.numero)) {
                // considera o processo no Eproc ao decidir competência
                proc = processosRecebidos.get(r.numero);
                if (proc.sistema.contains("apolo") && system.contains("eproc")) {
                    processosRecebidos.remove(r.numero);
                } else if (proc.sistema.contains("eproc") && system.contains("apolo"))
                    continue;
                else
                    throw new PresentableException("Não foi possível identificar qual sistema tem competência para o processo: " + r.numero, mcr.status);
            }
            ProcessoValido pv = new ProcessoValido();
            pv.numero = r.numero;
            pv.sistema = system;
            pv.orgao = r.orgao;
            pv.unidade = r.unidade != null ? r.unidade.trim() : null;
            pv.localnaunidade = r.localNaUnidade;
            pv.segredodejustica = r.segredodejustica;
            pv.segredodejusticadesistema = r.segredodejusticadesistema;
            pv.segredodejusticaabsoluto = r.segredodejusticaabsoluto;
            pv.usuarioautorizado = r.usuarioautorizado;
            pv.digital = r.eletronico;
            pv.sentenciado = r.sentenciado;
            pv.baixado = r.baixado;
            pv.cdas = r.cdas;
            if (r.dataultimomovimento != null)
                pv.dataultimomovimento = Utils.parsearDataHoraMinuto(r.dataultimomovimento);
            pv.autor = Texto.maiusculasEMinusculas(r.autor);
            pv.reu = Texto.maiusculasEMinusculas(r.reu);
            processosRecebidos.put(pv.numero, pv);
        }
    }
    resp.list.addAll(processosRecebidos.values());
    resp.datavalidacao = new Date();
}
Also used : HashMap(java.util.HashMap) SwaggerCallParameters(com.crivano.swaggerservlet.SwaggerCallParameters) IUsuarioUsernameProcessoNumerosGet(br.jus.trf2.sistemaprocessual.ISistemaProcessual.IUsuarioUsernameProcessoNumerosGet) Date(java.util.Date) ProcessoValido(br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido) Processo(br.jus.trf2.sistemaprocessual.ISistemaProcessual.Processo) PresentableException(com.crivano.swaggerservlet.PresentableException) SwaggerMultipleCallResult(com.crivano.swaggerservlet.SwaggerMultipleCallResult)

Example 3 with PresentableException

use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.

the class Utils method verifyCaptcha.

// Se houver erro de SSL, pode ser necessário instalar o certificado do
// Google na cadeia de certificados do Java, seguindo o exemplo abaixo:
// 
// c:\OpenSSL-Win64\bin>openssl s_client -connect www.google.com:443 < NUL >
// google.crt
// 
// e:\Desenvolvimento\jre1.8.0_162\bin>keytool -import -alias
// www.google.com -keystore ../lib/security/cacerts -file
// c:\OpenSSL-Win64\bin\google.crt
// 
public static boolean verifyCaptcha(String token) throws Exception {
    if (token == null)
        throw new PresentableException("Captcha não pode ser nulo");
    VerifyCaptchaRequest q = new VerifyCaptchaRequest();
    q.secret = BalcaojusServlet.INSTANCE.getProperty("recaptcha.secret.key");
    q.response = token;
    q.remoteip = SwaggerServlet.getHttpServletRequest().getRemoteAddr();
    VerifyCaptchaResponse r = SwaggerCall.doHTTP(null, "https://www.google.com/recaptcha/api/siteverify", "GET", q, VerifyCaptchaResponse.class);
    return r.success;
}
Also used : PresentableException(com.crivano.swaggerservlet.PresentableException)

Example 4 with PresentableException

use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.

the class ProcessoNumeroInformacoesAdicionaisGet method run.

@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
    if (!req.sistema.contains(".eproc"))
        return;
    Usuario u = BalcaojusServlet.getPrincipal();
    if (u.usuarios == null)
        throw new PresentableException("Usuário não possui identificador e unidade");
    UsuarioDetalhe ud = u.usuarios.get(req.sistema.toLowerCase());
    if (!u.isInterno() && "prod".equals(BalcaojusServlet.INSTANCE.getProperty("env")) && (u.email == null || !u.email.endsWith("@pgfn.gov.br")))
        return;
    Future<SwaggerAsyncResponse<IUsuarioUsernameProcessoNumeroInformacoesAdicionaisGet.Response>> future = SwaggerCall.callAsync("obter informacoes adicionais", Utils.getApiPassword(req.sistema), "GET", Utils.getApiUrl(req.sistema) + "/usuario/" + u.usuario + "/processo/" + req.numero + "/informacoes-adicionais", null, IUsuarioUsernameProcessoNumeroInformacoesAdicionaisGet.Response.class);
    SwaggerAsyncResponse<IUsuarioUsernameProcessoNumeroInformacoesAdicionaisGet.Response> sar = future.get();
    if (sar.getException() != null)
        throw sar.getException();
    IUsuarioUsernameProcessoNumeroInformacoesAdicionaisGet.Response r = (IUsuarioUsernameProcessoNumeroInformacoesAdicionaisGet.Response) sar.getResp();
    resp.cdas = new ArrayList<>();
    if (r.cdas != null) {
        for (br.jus.trf2.sistemaprocessual.ISistemaProcessual.CDA cda : r.cdas) {
            br.jus.trf2.balcaojus.IBalcaojus.CDA o = new br.jus.trf2.balcaojus.IBalcaojus.CDA();
            o.numero = cda.numero;
            o.processoadministrativo = cda.processoadministrativo;
            o.status = cda.status;
            o.grupo = cda.grupo;
            o.codigotributo = cda.codigotributo;
            o.tributo = cda.tributo;
            o.valor = cda.valor;
            o.valorufir = cda.valorufir;
            o.dataorigem = cda.dataorigem;
            o.datainclusao = cda.datainclusao;
            resp.cdas.add(o);
        }
    }
}
Also used : SwaggerAsyncResponse(com.crivano.swaggerservlet.SwaggerAsyncResponse) Usuario(br.jus.trf2.balcaojus.AutenticarPost.Usuario) SwaggerAsyncResponse(com.crivano.swaggerservlet.SwaggerAsyncResponse) PresentableException(com.crivano.swaggerservlet.PresentableException) IUsuarioUsernameProcessoNumeroInformacoesAdicionaisGet(br.jus.trf2.sistemaprocessual.ISistemaProcessual.IUsuarioUsernameProcessoNumeroInformacoesAdicionaisGet) UsuarioDetalhe(br.jus.trf2.balcaojus.AutenticarPost.UsuarioDetalhe)

Example 5 with PresentableException

use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.

the class ProcessoNumeroNotaGet method run.

@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
    Usuario u = BalcaojusServlet.getPrincipal();
    if (u.usuarios == null)
        throw new PresentableException("Usuário não possui identificador e unidade");
    UsuarioDetalhe ud = u.usuarios.get(req.sistema.toLowerCase());
    if (ud == null)
        throw new PresentableUnloggedException("disabled");
    resp.list = new ArrayList<>();
    try (Dao dao = new Dao()) {
        Processo p = dao.obtemProcesso(req.numero, req.sistema, false);
        if (p == null)
            return;
        List<Nota> l = dao.obtemNotas(p, ud.id, ud.codunidade);
        if (l == null)
            return;
        for (Nota nota : l) {
            br.jus.trf2.balcaojus.IBalcaojus.Nota m = new br.jus.trf2.balcaojus.IBalcaojus.Nota();
            m.idnota = Long.toString(nota.getNotaId());
            m.texto = nota.getNotaTxConteudo();
            m.pessoal = nota.getNotaLgPessoal();
            m.nomeusuario = nota.getNotaNmUsu();
            m.dataalteracao = nota.getNotaDfAlteracao();
            resp.list.add(m);
        }
    }
}
Also used : Usuario(br.jus.trf2.balcaojus.AutenticarPost.Usuario) Nota(br.jus.trf2.balcaojus.model.Nota) Processo(br.jus.trf2.balcaojus.model.Processo) PresentableUnloggedException(com.crivano.swaggerservlet.PresentableUnloggedException) PresentableException(com.crivano.swaggerservlet.PresentableException) UsuarioDetalhe(br.jus.trf2.balcaojus.AutenticarPost.UsuarioDetalhe)

Aggregations

PresentableException (com.crivano.swaggerservlet.PresentableException)15 PresentableUnloggedException (com.crivano.swaggerservlet.PresentableUnloggedException)7 Usuario (br.jus.trf2.balcaojus.AutenticarPost.Usuario)4 UsuarioDetalhe (br.jus.trf2.balcaojus.AutenticarPost.UsuarioDetalhe)3 FetchResponse (br.jus.trf2.balcaojus.CertidaoEmitirRequisitanteCpfcnpjPost.FetchResponse)3 ByteArrayInputStream (java.io.ByteArrayInputStream)3 ProcessoValido (br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido)2 Processo (br.jus.trf2.balcaojus.model.Processo)2 JWTVerifyException (com.auth0.jwt.JWTVerifyException)2 Document (com.itextpdf.text.Document)2 PdfCopy (com.itextpdf.text.pdf.PdfCopy)2 PdfReader (com.itextpdf.text.pdf.PdfReader)2 PdfSmartCopy (com.itextpdf.text.pdf.PdfSmartCopy)2 ContentInfo (com.j256.simplemagic.ContentInfo)2 ContentInfoUtil (com.j256.simplemagic.ContentInfoUtil)2 FileOutputStream (java.io.FileOutputStream)2 IOException (java.io.IOException)2 InvalidKeyException (java.security.InvalidKeyException)2 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)2 SignatureException (java.security.SignatureException)2